gpt4 book ai didi

iOS UITabBarController 最佳实践 : one tab one controller or multiple tabs one controller?

转载 作者:搜寻专家 更新时间:2023-10-31 22:07:35 25 4
gpt4 key购买 nike

我是 iOS 开发的新手,已经开始使用 Swift。我目前正在使用包含 3 个选项卡/导航的选项卡栏导航。我应该将 UIViewController 子类化并将其用于所有 3 个场景,还是每个场景都应该有自己的 UIViewController 子类。这方面的最佳做法是什么?

谢谢。

更新

感谢@Larcerax 和@Adrian 的意见,我已经更新了 Storyboard:

enter image description here

每个选项卡导航都有自己的 UINavigationController 和 UIViewController 的子类。如果我对您的指示的理解有误,请告诉我。

最佳答案

如果我是你,并且我以前有过你的经历,我不会照你说的去做,但我会彻底修改策略并走这条路:

应用委托(delegate):MainScreenRootViewController ===> UITabBarController:

选项卡 1 ====> UINavigationController ====> UIViewController

选项卡 2 ====> UINavigationController ====> UIViewController

选项卡 3 ====> UINavigationController ====> UIViewController

这样做会给你更多的回旋余地,因为现在每个 tabbaritem 都有自己的导航框架,整个应用程序也有自己的导航框架,这将使你更灵活地处理其他 View , 和 window 。如果您还有其他问题,请随时开火,我会尽可能多地回答问题。

事实上,这是我为您找到的一些代码:

  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
}

这就是如何使用导航 Controller 对选项卡进行 root,然后使用 Tabbar Controller 对主窗口进行 root,唯一不同的是将 tabbar 放在导航 Controller 中,然后将此组合作为 rootViewcontroller 的 root窗口。

关于iOS UITabBarController 最佳实践 : one tab one controller or multiple tabs one controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com