我是iOS开发的新手,已经开始使用Swift了。我目前正在使用标签栏导航,其中包含3个标签/导航。我应该将UIViewController子类化并将其用于所有3个场景,或者每个场景都应该有自己的UIViewController子类。这方面的最佳做法是什么?
谢谢。
感谢@Larcerax和@Adrian的输入,我已经更新了我的故事板:
每个标签导航都有自己的UINavigationController和UIViewController的子类。如果我错误地解释您的路线,请与我们联系。
答案 0 :(得分:3)
如果我是你,而且我以前一直在你的鞋子里,我不会按照你的意思去做,但我会彻底改变策略,走这条路:
App Delegate:MainScreenRootViewController ===> UITabBarController:
标签1 ====> UINavigationController ====>的UIViewController
标签2 ====> UINavigationController ====>的UIViewController
Tab 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控制器对主窗口进行root操作,我唯一不同的就是将导航控制器中的tabbar生根,然后将此组合作为root用户控制器的根目录。窗口。
答案 1 :(得分:3)
您可能会在不同的UIViewController
上执行不同的操作,因此您需要为每个场景设置不同的视图控制器。在使用UIViewControllers
时,您会看到很多重复:使用的方法,但您可能会在不同的ViewController
上的这些方法中做不同的事情。