Come dare una visualizzazione personalizzata per l'UIBarButtonItem che viene visualizzato sul modo verticale per UISplitViewController?

StackOverflow https://stackoverflow.com/questions/3438932

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?

È stato utile?

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];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top