【发布时间】:2023-03-15 03:48:01
【问题描述】:
我有一个带有 2 个标签栏项目的 UITabbarController。每个选项卡栏项都包含几个与 UINavigationController 链接的 UIViewController。我希望每次切换选项卡项时,显示的视图都是根。我该怎么办?
【问题讨论】:
标签: ios uiviewcontroller uinavigationcontroller uitabbarcontroller
我有一个带有 2 个标签栏项目的 UITabbarController。每个选项卡栏项都包含几个与 UINavigationController 链接的 UIViewController。我希望每次切换选项卡项时,显示的视图都是根。我该怎么办?
【问题讨论】:
标签: ios uiviewcontroller uinavigationcontroller uitabbarcontroller
您可以使用UITabBarControllerDelegate 的方法tabBarController:shouldSelectViewController: 来跟踪用户更改选项卡,并在您在那里选择的导航控制器上执行popToRootViewController:。
另一个相当古怪的解决方案可能涉及子类化 UINavigationController 并在 viewWillAppear: 中做同样的事情。
【讨论】:
UITabBarController的代理,我猜它是你的AppDelegate。 AppDelegate 本身可能扮演UITabBarControllerDelegate 的角色并实现方法。 (虽然这不是最干净的做法,但对于较小的项目来说还可以。)
AppDelegate 最终成为无数事情的代表并变得乱七八糟。我可能会有一个单独的对象来管理 UI 导航,但仅此而已。