如果我是你,我之前一直在你的鞋,我不能做你在说什么,但我会彻底改造战略,走这条路线:
应用代表: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