Sonntag, Dezember 8, 2019

Ändern Sie den Titel der Navigationsleiste, anhand welcher tab ausgewählt ist?

Ich eine iOS app, wo gibt es einen navigation-controller, root controller, sondern an einem Teil gibt es eine tab-Leiste zu wählen Sie zwischen Ansichten in einer der nav-bars. Es sieht ähnlich aus wie die iTunes-app (navigation bar oben, tab-Leiste auf der Unterseite). Ich will die Titel meiner Navigationsleiste zu ändern, die Registerkarte ist ausgewählt. Ich habe zwei separate controller-Dateien für die einzelnen Register. Hier ist was ich versucht habe zu verwenden, in der jeder so weit, dies zu beheben, ohne Erfolg:

self.navigationItem.title = @"Title";
self.navigationController.navigationItem.title = @"title";
[self.navigationController setTitle:@"Live"];    
[self setTitle:@"Top Title"];

Wie ändere ich die NavBar Titel basiert auf die Registerkarte gedrückt wird?

InformationsquelleAutor DCIndieDev | 2013-05-16

6 Kommentare

  1. 19

    Ändern Sie den Titel der bar in der view-controller wird aktuell angezeigt.

    So zum Beispiel in view-controller Ein, dass Sie die Ansicht in der Registerkarte controller, den Sie hinzufügen könnte:

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:YES];
        [self setTitle:@"A"];
        self.tabBarController.navigationItem.title = @"A";
    }

    Gleiche gilt für B, C, usw.

    • Wenn ich versuche, diese Methode, es setzt den Titel der Registerkarte, die der controller angeschlossen ist auf „Ein“
    • Siehe meine überarbeitete Antwort.
    • Wieder die gleiche Frage. es setzt die tab-Leiste Titel Ein, nicht auf die Navigationsleiste Titel. Wenn Sie Lesen meine Frage, ich schrieb, dass ich versucht habe die 3 Methoden.
    • Seltsam. Ich bin neugierig, zu. Werde ich revidiere meine Antwort, wenn ich nichts mehr.
    • Tatsächlich, das Letzte hat funktioniert. Ein upvote und ein Häkchen. Dank
    • Kein problem. Ich sehe jetzt, was das problem war. Froh, dass es geklappt hat.
    • Je nachdem, welcher Titel wurde eingestellt, die letzten sticks aber. Gibt es einen Ort, ich kann dies neben der viewDidLoad-damit lädt es den Titel jedes mal Wechsel ich die tabs?
    • viewWillAppear.

  2. 3

    In Ihrem ViewControllers, die sich in die Registerkarten:

    -(void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        self.tabBarController.title = self.title;
    }
  3. 2

    Wenn die einzelnen view-Controller vorgestellt, indem Sie die tab-bar-controller haben Ihre eigenen navigation Stäbe, dann

    [self setTitle:@"Foo"];

    setzt sowohl die tab-Leiste label, sowie die Navigationsleiste Titel.

    Wenn den navigation-controller auf der obersten Ebene (D. H. der tab-Leiste ist in der navigation-controller), dann haben Sie vielleicht, um die Navigationsleiste Titel manuell (und Sie wollen dies tun, in viewDidAppear eher als viewDidLoad, da diese untergeordneten Steuerungen werden nicht erneut geladen, jedes mal, wenn Sie wechseln), z.B.:

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    
        [self.navigationController.navigationBar.topItem setTitle:@"Foo"];
    }

    Alternativ, Sie könnten dies tun Navigationsleiste Titel Anpassung in Ihrem UITabBarControllerDelegate Methode didSelectViewController.

    Wenn Sie das nicht tun, müssen Sie möglicherweise zu klären, Ihre Frage und beschreiben Sie die Hierarchie von Controllern (z.B. die tab-bar-controller im inneren der navigation bar, oder Umgekehrt).

  4. 1

    Können Sie eine Unterklasse der UITabBarController, legen Sie die Delegierten zu sich selbst, und verwenden Sie die delegate-seine Titel, wenn der view-controller ausgewählt ist:

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {
        //change the title based on viewController that is selected
        self.title = @"New title";
    }
    • Persönlich, ich bevorzuge diese Art von Ansatz.
  5. 1

    Nur Zwei Zeilen Code..Nur die Sache ist, müssen Sie viewWillAppear Methode

    -(void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        self.tabBarController.navigationItem.title = @"Your Title";
    }

    PS: Inspiriert von Oben Antworten…

  6. 0
     UITabBarController *tabController = (UITabBarController *)self.parentViewController;
    
     tabController.navigationItem.title = @"ABC";

    Dies ist für mich arbeiten

    Aus irgendeinem R&D auf internet

    Sie zu Durchlaufen haben, die navigationItem sich die Kette.
    Der UINavigationController zeigt die navigationItem gehören zu seinen topViewController die UITabBarController.
    Die UITabBarController zeigt der navigationItem-Titel in seiner tabs. Also, was Sie tun müssen ist, stellen Sie sicher, dass der tabBarController ist navigationItem ist es selectedViewController ist navigationItem

    So zur Erinnerung:

    UINavigationController title = topViewController.navigationItem.Titel

    UITabBarController tabTitle =
    selectedViewController.navigationItem.Titel

    UIViewController title = navigationItem.Titel

Kostenlose Online-Tests

Letzte Fragen

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile... var TableRow = Marionette.ItemView.extend({ tagName:...

Wie kann ich untersuchen, WCF was 400 bad request über GET?

Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client: AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int...

Bei der Verwendung von UUIDs, sollte ich auch mit AUTO_INCREMENT?

Wir bauen eine neue web-app, die eine offline-iPad - /Android-app-version auf einer Reihe von lokalen Geräten, die Einsätze mit neuen Daten. Als solche benötigen...

Actionscript-Objekt, das verschiedene Eigenschaften

Wie kann ich die Anzahl der Eigenschaften in einer generischen Actionscript-Objekt? (Wie die Array-Länge) InformationsquelleAutor Fragsworth | 2011-01-15

Wie plot mehrere Graphen und nutzen Sie die Navigations-Taste im [matplotlib]

Die neueste version von matplotlib erstellt automatisch Navigations-buttons unter den graph. Aber die Beispiele, die ich finden alles im Internet zeigen, wie erstellen Sie...