Sto cercando di personalizzare la barra di navigazione aggiungendo un pulsante personalizzato a destraBarButtonItem. La creazione di uno è abbastanza semplice.Aggiunta di azioni e target a un oggetto di navigazione personalizzato BarButtonItem?
UIImage *myImage = [UIImage imageNamed:@"menu-icon.png"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setFrame:CGRectMake(0, 0, myImage.size.width, myImage.size.height)];
[myButton setBackgroundImage:myImage forState:UIControlStateNormal];
UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];
[navItem setLeftBarButtonItem:myButtonItem animated:YES];
sembra buono, solo che adesso non riesco a impostare le proprietà di destinazione o di azione. Il seguente codice non fa nulla:
myButtonItem.target = myTarget;
myButtonItem.action = @selector(myButtonAction);
ho trovato che la ragione non funziona è perché ho inizializzato l'UIBarButtonItem con -initWithCustomView. La documentazione delle mele dice:
L'elemento del pulsante di barra creato da questo metodo non chiama il metodo di azione del suo target in risposta alle interazioni dell'utente. Invece, l'elemento del pulsante di barra si aspetta la vista personalizzata specificata per gestire qualsiasi interazione dell'utente e fornire una risposta appropriata.
Sono un po 'confuso da cosa esattamente Apple significhi. Dovrei creare un controllo personalizzato o qualcosa del genere? Non l'ho ancora fatto e non sono sicuro da dove cominciare.
Qualcuno ha qualche suggerimento su come fare questo o un modo alternativo per impostare un pulsante personalizzato della barra di navigazione?
RISPOSTA -------------------------------------------- --------------
solo dovuto aggiungere questo metodo alla UIButton:
[myButton addTarget:myTarget action:@selector(myButtonAction) forControlEvents:UIControlEventTouchUpInside];
Grazie, non sapevo che era così semplice. – DJSK