Come dare una visualizzazione personalizzata per l'UIBarButtonItem che viene visualizzato sul modo verticale per UISplitViewController?
-
27-09-2019 - |
Domanda
Quando andiamo modalità ritratto mentre si utilizza un UISplitViewController, che ci fornirà da un barButtonItem. Come posso usare un CustomView per questo barButtonItem?
ho provato nel modo seguente. Funziona se comincio con orientamento verticale. Ma se vado paesaggio e quando torno si blocca.
In viewDidLoad
UIImage *image = [UIImage imageNamed:@"home.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, 22.00, 22.00);
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showHomeDetails) forControlEvents:UIControlEventTouchDown];
homeButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[button release];
Poi nel willHideViewController
barButtonItem = homeButton;
Quello che shud che faccio? O c'è una soluzione alternativa?
Soluzione
Credo che dovrebbe essere questo:
UIImage *image = [UIImage imageNamed:@"home.png"];
UIImageView *imageView = [UIImageView initWithImage:image];
homeButton = [[UIBarButtonItem alloc] initWithCustomView:imageView];
[homeButton addTarget:self action:@selector(showHomeDetails)];
[homeButton setBounds:CGRectMake(0, 0, 22.00, 22.00)];
Spero che questo risolve il problema
jrtc27
Altri suggerimenti
riscritto in questo modo all'interno della willHideViewController e il suo fare.
UIImage *image = [UIImage imageNamed:@"news.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, image.size.width, image.size.height );
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showSideTable) forControlEvents:UIControlEventTouchUpInside];
[barButtonItem setCustomView:button];
il cambiamento principale è stato rimosso [rilascio del pulsante].
Supponendo un'immagine è la visualizzazione personalizzata che stai cercando:
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
[barButtonItem setImage:[UIImage imageNamed:@"awesome_menu_icon.png"]];
[[self navigationItem] setLeftBarButtonItem:barButtonItem];
}