2015-08-18 17 views
5

Ho bisogno di un riferimento al pulsante Indietro in UINavigationBar o UINavigationItem. Il pulsante Back nell'immagine qui sotto.Fare riferimento al pulsante Indietro su UINavigationBar

Navigation Bar

Non sto Personalizzazione del pulsante, quindi

navigationItem.backBarButtonItem 
navigationItem.leftBarButtonItem 

questi entrambi sono pari a zero.

C'è un modo per ottenere un riferimento al pulsante senza personalizzarlo?

Riferimento:

Aggiornamento: Il mio comment potrebbe aiutare a capire il motivo per cui io non voglio personalizzare il pulsante indietro. :)

+0

Per interessi, perché desideri un riferimento? –

+0

@ Phoen1xUK Sto utilizzando questo pod https://github.com/szk-atmosphere/SAHistoryNavigationViewController nel mio progetto. Ma come puoi vedere, la rilevabilità di questa funzione è molto difficile. Quindi sto usando un altro pod https://github.com/teodorpatras/EasyTipView per mostrare un consiglio su di esso. Ora, questa vista tip ha bisogno di un riferimento a questo 'UIBarButtonItem' per mostrare un suggerimento sotto di esso. –

risposta

4

Il Documentation dice questo circa il backBarButtonItem:

Quando questa voce è l'elemento posteriore della barra di navigazione, quando è il voce successiva sotto la parte superiore di elemento può essere rappresentato come un pulsante Indietro su la barra di navigazione. Utilizzare questa proprietà per specificare il pulsante Indietro. Il valore predefinito è un pulsante che mostra il titolo della voce di navigazione.

Così il backBarButtonItem è sempre nil predefinita perché appartiene alla precedente controller della vista. L'unico modo per ottenere un riferimento non zero è personalizzarlo.

Se si desidera solo modificare il nome, tuttavia, è possibile farlo nel controller di visualizzazione precedente.

+0

Questo non risolve il mio problema. :( Il mio caso d'uso - http://stackoverflow.com/questions/32076612/reference-the-back-button-on-uinavigationbar#comment52052698_32076612 –

1

In riferimento alla mia caso d'uso - Ayush's comment

Fino al momento ho una soluzione concreta, ho creato una vista fittizia sotto la barra di navigazione (di seguito il tasto back) per mostrare la punta da. Ecco il codice.

let v = UIView(frame: CGRectMake(0, 0, 50, 0)) 
view.addSubview(v) 
let tipText = "Here it the back button" 
EasyTipView.showAnimated(true, 
    forView: v, 
    withinSuperview: view, 
    text:tipText, 
    preferences: nil, 
    delegate: self) 
1

provare questo uno

let backItem = UIBarButtonItem(title: "Custom Text HERE", style: .Bordered, target: nil, action: nil) 
navigationItem.backBarButtonItem = backItem 
1

Prova questa potrebbe aiutarti.

UINavigationItem *i = [self.navigationController.navigationBar.items firstObject]; 
    i.title = @"Hai"; 
Problemi correlati