2011-10-06 17 views
6

Aggiungo UINavigationBar tramite Libreria per visualizzare. Aggiungo anche UINavigationItem a questo NavigationBar.Pulsante Indietro di navigazione non mostra come aggiungere il pulsante Indietro a UINavigationItem

In viewController.m, ho aggiunto il seguente codice ma il pulsante Indietro non viene visualizzato.

self.navigationItem.title = @"List"; 
self.navigationItem.backBarButtonItem.title = @"Back"; 
+1

Hai provato 'self.navigationItem.hidesBackButton = NO'? – EmptyStack

+0

non è visibile solo il pulsante Indietro o l'intera barra di navigazione? – HeikoG

+1

Ho appena avuto questo problema e questo lo ha risolto per me: http://stackoverflow.com/questions/2485671/uinavigationcontroller-back-button-not-visible-but-works – banDedo

risposta

2

self.navigationItem.backBarButtonItem verrà mostrato solo dopo il tuo hanno spinto un altro al fine di stack di navigazione, controllata da self.navigationController, se non viene visualizzato alcun pulsante sinistro barra di navigazione.

Da docs Apple:

Quando questa voce è l'elemento posteriore della barra di navigazione, quando è l'elemento successivo sotto la parte superiore di elemento può essere rappresentato come un pulsante indietro sulla barra di navigazione. Utilizzare questa proprietà per specificare il pulsante Indietro. L'obiettivo e l'azione dell'elemento del pulsante sulla barra posteriore impostato devono essere pari a zero. Il valore predefinito è una voce del pulsante di barra che mostra il titolo della voce di navigazione.

+0

grazie per le vostre informazioni. Attualmente non lo faccio usa spingere la vista allo stack di navigazione. Ho chiamato questa vista dalla vista principale con il metodo addSubView.Quindi, come aggiungere l'elemento pulsante barra posteriore al mio oggetto NavigationItem o come abilitare la voce pulsante barra posteriore. –

+0

È necessario creare un pulsante personalizzato e impostarlo come 'self.navigationItem.leftBarButtonItem'. Controlla la risposta con @ 516 – Nekto

+0

Io provo. Ma non ancora mostrare. –

2

provare questo codice,

**To hide your default back button use this,** 



self.navigationItem.hidesBackButton = YES; 

UIImage* image = [UIImage imageNamed:@"back.png"]; 
    CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height); 
    UIButton* backbtn = [[UIButton alloc] initWithFrame:frame]; 
    [backbtn setBackgroundImage:image forState:UIControlStateNormal]; 
    [backbtn setShowsTouchWhenHighlighted:YES]; 
    [backbtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem* backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backbtn]; 
    [self.navigationItem setLeftBarButtonItem:backButtonItem]; 
    [backButtonItem release]; 
    [backbtn release]; 

Azione evento per il pulsante indietro:

-(IBAction)goBack{ 
//ur code here 

}

2

Prova questo codice può essere che sia di aiuto per u

UIButton *moreButton1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [moreButton1 setImage:[UIImage imageNamed:@"left_arrow.png"] forState:UIControlStateNormal]; 
    //[moreButton setImage:[UIImage imageNamed:@"Button_OtherInfo_Active.png"] forState:UIControlStateHighlighted]; 
    [moreButton1 addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside]; 
    [moreButton1 setFrame:CGRectMake(0, 0, 50,30)]; 
    self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:moreButton1]; 

inserire questo codice nel viewDidLoad

-(void)backClick 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
0

Questo è un po 'vecchio, ma nel caso in cui qualcuno è alla ricerca di una risposta ...

Il pulsante Indietro presenta automaticamente, ma la vista corrente (non quello essere spinto) deve avere un titolo. ad esempio:

- (void)viewDidLoad 
{ 
    self.title = @"Home"; 
    [super viewDidLoad]; 
} 

Poi, quando si preme una vista nello stack vista con

[self.navigationController pushViewController:aViewController animated:YES]; 

il pulsante Indietro presenta. Non c'è bisogno di scherzare con UINavigationItem o UINavigationBar. Utilizzare quelli per personalizzare la barra di navigazione. Dai un'occhiata al progetto di esempio chiamato NavBar, parte di xcode.

8

Prova questa:

self.navigationItem.leftItemsSupplementBackButton = YES; 

Se si personalizza il controller di navigazione con UIBarButtonItems quadro rimuove il pulsante indietro per difetto, in quanto presuppone che si sta personalizzando la barra di navigazione. Usa quella linea per aggiungere di nuovo il pulsante Indietro.

Problemi correlati