【问题标题】:Issue with a UINavigationController inside a UITabBarController inside another UINavigationController另一个 UINavigationController 内的 UITabBarController 内的 UINavigationController 出现问题
【发布时间】:2015-08-18 19:57:06
【问题描述】:

不要因为没有代码就让我展示代码。一切都在故事板中完成。

我的应用程序从一个主导航控制器开始,该控制器将登录视图控制器作为其根视图控制器。登录视图控制器有一个按钮。当按钮被按下时,标签栏控制器被按下。标签栏控制器有 4 个项目。每个项目都是一个辅助导航控制器,维护自己的视图控制器堆栈。所以基本上结构是:主UINavigationController->登录视图控制器->UITabBarController->辅助UINavigationController->视图控制器数组。

问题是:当我沿着辅助导航控制器的视图控制器堆栈进行操作时,我想通过按导航栏上的Back 按钮返回到以前的视图控制器。但事实证明,导航栏不属于当前的导航控制器(第二个)!它属于主导航控制器!因此,当我点击Back 按钮时,我会弹出到应用程序的最开头,即登录视图控制器,因为主导航控制器会弹出标签栏控制器。我希望我清楚地描述了这个问题。

当然,我可以做一个解决方法。如果我隐藏主导航控制器的导航栏,那么我会看到辅助导航控制器的导航栏,这正是我所需要的。但我觉得这不是一个合适的解决方案。我觉得必须有一个正确的。你们觉得怎么样?

【问题讨论】:

    标签: ios cocoa-touch uinavigationcontroller uikit uitabbarcontroller


    【解决方案1】:

    我不建议使用UINavigationController 将您的登录名转移到您的主要UITabBarController... 个人而言,我更喜欢使用主要UIWindow 的不同rootViewController 作为登录名或显示登录模态(没有动画)...这更有意义,因为您不希望用户“导航回”到登录屏幕,而是使用注销并完全切换上下文。

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多