Frage

ich meine eigene benutzerdefinierte navigationbar verwenden, aber ich brauche, um es von verschiedenen Ansichten in einer Reihe zugreifen, weil ich Schaltflächen hinzufügen muß, ändern Titel und so weiter.

Sollte passieren i einen Verweis auf meine navigationbar jedes Mal, wenn ich eine neue Ansicht zeigen, oder es nur einen Singleton machen, so dass ich es aus einem beliebigen Ansicht zugreifen kann?

War es hilfreich?

Lösung

Machen Sie es eine globale Variable.

Andere Tipps

Weder noch.

Sie aufgelistet haben Hinzufügen von Schaltflächen und Titel wie die Gründe zu ändern Sie eine benutzerdefinierte Symbolleiste benötigen, aber diese beiden Dinge können, ohne dass durch die Navigationssteuerung durchgeführt werden, um eigene erstellen und somit auch keine Notwendigkeit, ein Singleton oder eine erstellen globale Variable.

Wenn Sie eine neue View-Controller drücken, können Sie den Titel für die Navigationsleiste kann einfach durch [self setTitle: @ „Nav Titel“] aufrufen; im -viewDidLoad dieser View-Controller. Wenn Sie eine Schaltfläche hinzufügen möchten, verwenden Sie Code wie folgt aus (auch in -viewDidLoad):

[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
        initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                             target:self 
                             action:@selector(setEditing)] autorelease]];

Mit anderen Worten, Ihr Design ist fehlerhaft, wenn Sie eine benutzerdefinierte Navigationsleiste erstellen, nur für die Gründe, die Sie aufgelistet haben. Ich nehme es einige gute Gründe, eine benutzerdefinierte Navigationsleiste zu erstellen, aber diese sind nicht unter ihnen.

Betrachten Sie die Konfigurieren des Navigations-Elementobjekt Abschnitt der View-Controller-Programmierhandbuch für iPhone OS .

Mit freundlichen Grüßen,

Sind Sie mit einem UINavigationController? Wenn ja, können Sie die Navigationsleiste von jedem Sub-Controller wie folgt zugreifen:

UINavigationBar *bar = self.navigationController.navigationBar;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top