Wie Sie set-Taste für navigationItem titleView?
Möchte ich programmatisch set-Taste für navigationItem.titleView.
Ich habe versucht mit folgenden code, aber ohne Erfolg;
UIBarButtonItem *navigationTitleButton = [[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStyleBordered target:self action:@selector(backToHOmePage)];
navigationTitleButton.image = [UIImage imageNamed:@"title.png"];
self.navigationItem.titleView = navigationTitleButton;
Warnng sagt: Inkompatible Zeiger-Typen zuordnen zu 'UIView *' aus 'UIBarButtonItem *__starke'
InformationsquelleAutor iWizard | 2012-11-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, diesen code sehen, ob es für Sie arbeitet
Deine Lösung funktioniert, vielen Dank! Warum ist es, dass, wenn UIButton ist eine Unterklasse von UIView, dass ein UIButton können nicht direkt verwendet werden, wie titleView?
Es funktioniert mit einem UIButton, UILabel, etc. Sie müssen nur initWithFrame eine sichtbare Größe UIView. Siehe unten oder in Evgenjy S Antwort.
InformationsquelleAutor Janub
Sie nicht haben, zu erstellen BarItem, die Sie benötigen, zu erstellen UIView-Klasse-Objekt;
ARC
oder
InformationsquelleAutor Evgeniy S
Swift version:
Hier können Sie sehen in der letzten Zeile die Taste ist direkt auf der titleView von navigationItem die Schaltfläche hinzufügen in der Mitte der Navigationsleiste.
Action-Methode für button ist unten:
InformationsquelleAutor Esqarrouth
Können Sie ein UIImageView als navigationItem ' s titleView direkt, allerdings wird es nicht sichtbar sein, wenn Sie nicht machen sicher, es ist groß. Der einfachste Weg, um Größe zu verwenden sizeToFit().
In diesem Beispiel habe ich auch Runde Ecken und fügen Sie die Fähigkeit zu wissen, wenn es angetippt wird.
InformationsquelleAutor Michael Peterson
Swift 3 Version:
InformationsquelleAutor iLandes
Wenn Sie planen, ändern Sie die Taste.Titel zur Laufzeit, und Sie ändern den Titel, um mehr text, es wird nicht zentriert. Und wenn Sie die-Taste.sizeToFit(), wird es zentriert sein, sondern zeigen die neuen Titel wie "T..e".
Die Lösung besteht darin, den UIButton in einer UIView. Und beschränken Sie die Taste, um alle Seiten von UIView.
Dann setzen Sie einfach die navigationItem.titleView zu, dass UIView. Und es wird Griff programmatischen Titel änderungen perfekt.
InformationsquelleAutor Harris
Versuchen Sie einen UIButton Objekt für die Schaltfläche, anstatt ein UIBarButtonItem. UIButton ist eine Unterklasse von UIView, so dass Sie sollten in der Lage sein, die titleView-Eigenschaft, um den UIButton, die Sie erstellt haben.
InformationsquelleAutor NikosM
Können Sie Ihre Taste auf einen Blick machen Sie dann diese Ansicht als die Titel anzeigen der Navigationsleiste können Sie dann ändern Sie den Titel der Schaltfläche zur Laufzeit leicht.
InformationsquelleAutor spider1983
Diese UISegmentedControl-basierte Ansatz könnte helfen: https://stackoverflow.com/a/16792575/171933 Genießen!
InformationsquelleAutor Johannes Fahrenkrug
Hier ist ein Swift 4 portierte version der Antwort von @Esqarrouth.
InformationsquelleAutor Zahnon