如果我是你,我之前一直在你的鞋,我不能做你在說什麼,但我會徹底改造戰略,走這條路線:
應用代表:MainScreenRootViewController = ==>的UITabBarController:
標籤1 ====>的UINavigationController ====>的UIViewController
標籤2 ====>的UINavigationController ====>的UIViewController
標籤3 === => UINavigationController ====> UIViewController
這樣做會給你更多的迴旋餘地,因爲現在每個tabbaritem都有它自己的導航框架,整個應用程序也有自己的導航框架,這將允許你更靈活地使用額外的意見和窗戶。如果您還有其他問題,請隨時解僱,我會回答儘可能多的問題。
而事實上,這裏是給你的一些代碼,我發現:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
var nav1 = UINavigationController()
var first = FirstViewController(nibName: nil, bundle: nil)
nav1.viewControllers = [first]
var second = SecondViewController(nibName: nil, bundle: nil)
var nav2 = UINavigationController()
nav2.viewControllers = [second]
var tabs = UITabBarController()
tabs.viewControllers = [nav1, nav2]
self.window!.rootViewController = tabs;
self.window?.makeKeyAndVisible();
return true
}
這是你如何根的標籤導航控制器,然後用的TabBar控制器,唯一根主窗口中,我會做不同的是根在導航控制器中的標籤欄,然後根據該窗口的rootViewcontroller根組合。
這很好,我喜歡它,我自己不使用故事板,但這正是我剛剛提到的設置。一個強有力的原因是這樣的:如果你願意,你可以用常規的視圖來啓動你的應用程序,然後當註冊完成並且設置完成時,然後你將大的導航控制器的PIER推到堆棧上並且應用程序啓動並運行 – Loxx
這會給你一個非常非常動態的應用程序的能力,你將能夠完全控制代碼庫,但它會先進。好消息也是你要這樣學習一噸。 – Loxx
還有一件事你必須要解決的是:你現在在堆棧中有幾個導航控制器,你可能需要調用「setNavigationBarHidden:TRUE」,如果你發現你的導航欄在頂部行爲扭曲,除此之外,您可以從選項卡推送,您可以從選項卡中提供,並且您可以做各種其他整潔的東西。 – Loxx