2017-01-02 8 views
1

Ich habe UIBarButtonItem und wenn ich versuche, Titel auf die Schaltfläche zu setzen, funktioniert es nicht.Titel auf UIBarButtonItem setzen

@IBOutlet weak var barButton: UIBarButtonItem! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    barButton.title = "AB" 
} 

Aber wenn ich versuche Aktion von UIBarButtonItem zu erstellen und dann tun sender.setTitle(), dann funktioniert es. Aber nicht bei viewDidLoad. Ich möchte den Titel nicht festlegen, wenn der Benutzer auf die Schaltfläche klickt.

+0

Für Sie programmatisch müssen UIBarButton erstellen, die auf Sicht Last tat. –

+0

@DheerajD Hallo, können Sie bitte erklären, warum es auf diese Weise nicht getan werden kann? – Nitesh

+0

UIBarButton wird zugewiesen, wenn der View-Controller geladen wird und Sie seinen Titel zur Laufzeit nicht ändern können. Wenn Sie den Titel ändern möchten, müssen Sie einen neuen Link zuweisen und ihn dem linken oder rechten Element zuweisen. –

Antwort

0

Wenn Sie bereits ein IBOutlet für den barButton haben, legen Sie einfach den Titel im Storyboard fest. Ich denke, das ist der einfachste Weg, es sei denn, Sie haben einen anderen Grund dafür, dies programmatisch zu tun.

enter image description here

+0

Es enthält Benutzernamen Initialen so ... – Nitesh

+0

In Ordnung, es wäre hilfreich zu klären, dass Sie nur Programmiermethoden verwenden können, da Ihr Titel nur "Titel zu UIBarButtonItem" festgelegt ist –

1

ändern Titel oder ein Bild und dann auf navigationItem Rücktritt zurück:

class AnotherViewController: UIViewController { 

    @IBOutlet weak var myBarButton: UIBarButtonItem! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let barButton = myBarButton 
     barButton?.title = "Anther Title" 
     navigationItem.rightBarButtonItem = barButton 

    } 
} 

Apple-Dokument: https://developer.apple.com/reference/uikit/uibaritem/1616412-title

Sie diese Eigenschaft, bevor Sie das Objekt in einer Bar setzen soll . Der Standardwert ist Null.

0

Wenn ich das versuche, funktioniert es. Vielleicht gibt es einen Fehler mit Xcode, löschen Sie Ihre Schaltfläche und Verbindungen und versuchen Sie es erneut.

class ViewController: UIViewController { 

    @IBOutlet weak var barButton: UIBarButtonItem! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
     barButton.title = "MyButton" 
} 
0

diese stattdessen versuchen, diese

@IBOutlet weak var barButton: UIBarButtonItem! { 
    didSet { 
    barButton.title = "AB" 
} 
} 
Verwandte Themen