2014-10-02 63 views
5

嗨,我是新来的iOS应用程序开发。迄今为止,我只完成了使用导航栏或选项卡栏覆盖应用程序的教程。现在我想制作一个结合两者的应用程序。什么是在一个应用程序中合并导航栏和标签栏的正确故事板示例?

因此,例如,我有一个应用程序的底部有两个选项卡的标签栏:朋友和敌人。在每个标签中,我打算列出我的朋友和敌人是谁,因此它需要在每个标签的导航栏上添加一个addPerson按钮。

鉴于这种情况下,什么是组织我的控制器和视图和东西的正确方法? 将我的选项卡控制器和我的导航控制器指向相同的视图控制器?

我有问题的概念化如何我的导航控制器(2导航控制器现在?)将工作在一个更复杂的应用程序。

+0

我没有在我的应用程序中使用故事板,但我有一个制表符/导航控制器。我有选项卡控制器作为根,然后在每个选项卡内的导航控制器(以及需要一个选项卡)。我为每个选项卡都有一个完全独立的xib文件。 – 2014-10-02 00:13:26

回答

8

以下是如何在Storyboard中进行设置。 TabBarController是主控制器。在TabBarController的每个项目都有自己的NavigationController

enter image description here

你可能想使用你列出了TableViewController。这里我已经将TableViewController显示为NavigationController的rootViewController。

构建这个的快速方法是删除故事板中的所有内容,然后拖出两个直接放在另一个之上的TableViewControllers。通过在它们周围拖动轮廓来选择它们,然后从菜单中选择Editor->Embed In->Tab Bar Controller。然后依次选择每个TableViewController并选择Editor->Embed In->Navigation Controller

+1

感谢您的明确答复。到将来的任何noobs,请确保在标签栏控制器上有“是初始视图控制器”选中。如果删除故事板中的所有内容,它会自动取消选择 – stanley 2014-10-02 14:28:49

0

如果要动态地设置标题,使用此功能从UITabBar委托:

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

然后,只需在设置视图控制器的viewControllers title就像你通常会用一个UINavigationBar的事情。

相关问题