Durante la navigazione verso qualsiasi vista in un'app che ha il controller di navigazione implementato, mostra un pulsante indietro per andare alla precedente vista. C'è un modo per utilizzare un'immagine personalizzata al posto di quella predefinita?Come posso mostrare un'immagine personalizzata nel pulsante indietro della barra di navigazione invece dei pulsanti predefiniti che sono indicati dalla barra di navigazione stessa
risposta
Sì, è possibile.
È possibile controllare come il pulsante indietro di serie sarà quando un altro controller di vista è spinto sulla cima di un dato controller della vista impostando barra posteriore elemento pulsante del suo elemento di navigazione (è possibile personalizzare il titolo o utilizzare un'immagine):
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = btn;
[btn release];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:yourImage style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = btn;
[btn release];
Nota: si configura questa in un controller di vista "padre" che può avere altri controller della vista (s) spinto su di esso. La configurazione viene eseguita in "parent" e l'aspetto del pulsante Indietro viene modificato quando alcuni controller di visualizzazione sono in primo piano. Toccando il pulsante indietro ti riporti come previsto.
È inoltre possibile creare il proprio UIBarButtonItem e impostarlo come il leftButtonItem sulla barra di navigazione sulla corrente controller della vista:
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:yourImage style:UIBarButtonItemStyleBordered target:self action:@selector(yourMethod:)];
self.navigationItem.leftBarButtonItem = btn;
[btn release];
Nota: in questo caso, la barra posteriore/sinistra l'elemento del pulsante viene modificato per il controller della vista corrente (quando è in alto). È necessario implementare il metodo yourMethod:
. Se vuoi semplicemente che il pulsante torni indietro, devi gestire personalmente il controller di visualizzazione chiamando [self.navigationController popViewControllerAnimated:YES];
.
Ho trovato che nessuna delle soluzioni in realtà risolto il BACK UIBarButton e ha anche fornito il suo comportamento nascosto se il controller di visualizzazione è root.
-(void)popViewControllerWithAnimation {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if([self.navigationController.viewControllers objectAtIndex:0] != self)
{
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 26, 26)];
[backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
[backButton setShowsTouchWhenHighlighted:TRUE];
[backButton addTarget:self action:@selector(popViewControllerWithAnimation) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *barBackItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.hidesBackButton = TRUE;
self.navigationItem.leftBarButtonItem = barBackItem;
}
}
Funziona quasi come un pulsante indietro. Ad eccezione dell'animazione di transizione (dopo che il pulsante è stato toccato e la vista corrente è saltata fuori dalla navigazione a destra).
Il modo giusto è creare una categoria.
@interface UINavigationBar (MyNavigationBar)
-(void)drawRect:(CGRect)rect;
@end
@implementation UINavigationBar (MyNavigationBar)
-(void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"....."];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
- 1. Pulsante indietro personalizzato sulla barra di navigazione
- 2. Barra di navigazione con più pulsanti
- 3. come creare il pulsante Indietro nella barra di navigazione
- 4. Pulsante barra di navigazione image
- 5. Come disattivare il pulsante Indietro nella barra di navigazione
- 6. Aggiunta del pulsante Indietro alla barra di navigazione
- 7. Elemento del pulsante Barra non visualizzato nella barra di navigazione
- 8. Swift - Pulsante Indietro UIWebview con tasto di navigazione Barra posteriore
- 9. Assegna barra di navigazione personalizzata per UINavigationController
- 10. Barra di navigazione Pulsante Indietro, testo non centrale originale
- 11. UISegmentedControl nella barra di navigazione con il pulsante Indietro
- 12. Come rilevare il pulsante Indietro o la navigazione dei pulsanti Avanti in un'applicazione di navigazione Silverlight
- 13. Nascondere il titolo della barra di navigazione senza rimuoverlo
- 14. Barra di navigazione doppia indesiderata
- 15. Come aggiungere il pulsante Barra nella barra di navigazione senza controller di navigazione.
- 16. Come aggiungere il pulsante destro nella barra di navigazione?
- 17. Colore pulsante nella barra di navigazione - iPhone
- 18. Il titolo del pulsante di navigazione e il nome del pulsante Indietro sono gli stessi?
- 19. Disattivazione di un pulsante della barra di navigazione Elemento
- 20. iOS barra di navigazione VS UIToolbar
- 21. iPhone: pulsante Aggiungi informazioni come elemento pulsante barra destra nella barra di navigazione nel codice
- 22. Come intercettare il pulsante Indietro della barra di navigazione Cliccato su Xamarin Forms?
- 23. Barra di navigazione Android elenco navigazione smette di funzionare
- 24. iOS: barra di navigazione con immagini per pulsanti
- 25. Barra di navigazione titleVisione allineamento
- 26. Posso modificare la posizione della voce della barra di navigazione?
- 27. Come creare una barra di navigazione personalizzata come l'app BestBuy?
- 28. Come aggiungere il pulsante di menu sulla barra di navigazione
- 29. Barra di navigazione multilinea Titolo
- 30. Come aggiungere UIView sulla barra di navigazione?