2014-10-02 1 views
5

Hallo ich bin neu in iOS App Dev. Ich habe bisher nur Tutorials gemacht, die Apps mit Nav-Bars oder Tab-Bars abgedeckt haben. Jetzt möchte ich eine App machen, die beides kombiniert.Was wäre ein gutes Storyboard-Beispiel für die Kombination von Navigationsleisten und Tabstopps in einer App?

Also, ich habe eine App mit einer Tab-Leiste am unteren Rand mit zwei Tabs: Freunde und Feinde. In jedem Tab plane ich eine Liste meiner Freunde und Feinde zu erstellen, daher wird in der Navigationsleiste jeder Registerkarte ein addPerson Button benötigt.

angesichts dieses Szenarios, was wäre der richtige Weg, um meine Controller und Ansichten und Sachen zu organisieren? würden sowohl mein Tab-Controller als auch mein Nav-Controller auf denselben View-Controller zeigen?

Ich habe Probleme bei der Konzeption, wie mein Nav-Controller (2 Nav Controller jetzt?) In einer komplexeren App funktionieren würde.

+0

Ich verwende kein Storyboard in meiner App, aber ich habe einen Tab/Nav-Controller. Ich habe den Tab-Controller als root und dann einen Nav-Controller in jedem Tab (naja, die Tabs, die einen brauchen). Ich habe eine komplett separate XIB-Datei für jede Registerkarte. –

Antwort

8

Hier ist, wie Sie es in Ihrem Storyboard einrichten. Der TabBarController ist der Hauptcontroller. Jedes Element des TabBarController hat seine eigene NavigationController:

enter image description here

Sie wahrscheinlich eine TableViewController für Ihre Listen verwenden möchten. Hier habe ich den TableViewController als rootViewController des NavigationController gezeigt.

Ein schneller Weg, um dies zu konstruieren, ist alles im Storyboard zu löschen und dann ziehen Sie zwei TableViewControllers platzieren direkt übereinander. Wählen Sie beide aus, indem Sie einen Umriss um beide ziehen, und wählen Sie dann Editor->Embed In->Tab Bar Controller aus dem Menü. Wählen Sie nacheinander alle TableViewController und wählen Sie Editor->Embed In->Navigation Controller.

+1

danke für eine klare antwort. Zu jedem Noobs in der Zukunft, stellen Sie sicher, dass auf der Tab-Leiste Controller "Ist Initial View-Controller" aktiviert ist. Es wird automatisch deaktiviert, wenn Sie alles im Storyboard löschen – stanley

0

Wenn Sie den Titel dynamisch zu setzen, verwenden Sie diese Funktion von Ihrem UITabBar Delegierten:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { 
    self.title = viewController.title 
    print("Should select viewController: \(viewController.title) ?") 
    return true; 
} 

Dann setzen Sie einfach die Viewcontrollers title im View-Controller wie gewohnt mit einem UINavigationBar tun würde.