【问题标题】:UINavigationItem out of sync when using popToRootViewController使用 popToRootViewController 时 UINavigationItem 不同步
【发布时间】:2011-08-19 14:50:44
【问题描述】:

我点击了一个标签栏项目,它触发了 poptoRootViewControllerAnimated。大多数情况下它按预期工作,但在某些情况下它会弹出到正确的视图,但导航项不同步,“卡”在我之前所在的视图中。

我听说过有人在 iPad 处于横向模式时遇到此问题,但我找到的解决方案在这种情况下不起作用。这是一个纵向模式的 iPhone 应用。

在模拟器和实际 iPhone 上都会发生。如果有人有建议或解决方案,我将是一个非常快乐的人!

【问题讨论】:

  • 你在导航控制器中添加了 UITabBarController 吗?
  • 在层次结构的根部有一个 UITabBarController,工具栏中的每个项目都有一个 UINavigationController。问题只发生在其中一个上。

标签: iphone uitabbarcontroller uinavigationitem navigationcontroller


【解决方案1】:

事实证明,不同的 iOS 版本处理这个问题的方式不同。这只发生在旧版本上,所以我们必须在那里手动重建堆栈。

【讨论】:

    【解决方案2】:

    您是否在控制台中收到任何消息,例如

    嵌套推送动画会导致 损坏的导航栏

    完成导航转换 处于意想不到的状态。导航栏 子视图树可能会损坏。

    如果是,请查看these few answers... 但它们基本上的意思是你试图过早地从导航控制器中弹出,可能在它正确加载之前......

    【讨论】:

    • 不,当我点击标签栏项目时会发生这种情况,它调用 popToRootViewControllerAnimated。虽然只有在前一个视图中执行某种操作组合时,才会弹出到根目录。我有一个 UINavigationController 子类,它覆盖 popToRootViewController 并在索引 0 处有一个假视图控制器。然后我可以弹出到索引 1 处的视图控制器,这将是注销/登录的视图控制器,具体取决于用户的操作.看来我将不得不采取不同的方法,而不是在索引 0 处插入一个假 vc,这应该是可行的。
    猜你喜欢
    • 2012-05-21
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    相关资源
    最近更新 更多