不要让我显示代码,因为没有代码。一切都在 Storyboard中完成。
我的应用程序从一个主导航 Controller 开始,该 Controller 将登录 View Controller 作为其 Root View Controller 。登录 View Controller 有一个按钮。当按下按钮时,将按下选项卡栏 Controller 。选项卡栏 Controller 有 4 个项目。每个项目都是一个辅助导航 Controller ,维护自己的 View Controller 堆栈。所以基本上结构是:主 UINavigationController
-> 登录 View Controller -> UITabBarController
-> 辅助 UINavigationController
-> View Controller 数组。
问题是:当我沿着辅助导航 Controller 的 View Controller 堆栈前进时,我想通过按导航栏上的 Back
按钮返回到前一个 View Controller 。但事实证明,导航栏不属于当前导航 Controller (辅助导航 Controller )!它属于主导航 Controller !因此,当我点击 Back
按钮时,我会弹出到应用程序的最开头,弹出到登录 View Controller ,因为主导航 Controller 会弹出标签栏 Controller 。我希望我清楚地描述了这个问题。
当然我可以做一个解决方法。如果我隐藏主导航 Controller 的导航栏,那么我会看到辅助导航 Controller 的导航栏,这正是我所需要的。但我觉得这不是一个合适的解决方案。我觉得必须有一个正确的。你们觉得怎么样?
最佳答案
我不建议使用 UINavigationController
从登录到主 UITabBarController
...就个人而言,我更喜欢使用不同的 rootViewController
的主 UIWindow
作为登录或呈现登录模态(没有动画)...这更有意义,因为您不希望用户“导航回”登录屏幕,而是使用注销并完全切换上下文。
关于ios - 另一个 UINavigationController 内的 UITabBarController 内的 UINavigationController 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30639886/