2014-10-02 32 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的事情。