【问题标题】:What to do about "Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted."如何处理“在意外状态下完成导航转换。导航栏子视图树可能已损坏。”
【发布时间】:2011-07-22 11:57:40
【问题描述】:

我正在使用 Appcelerator Titanium Mobile 编写一个 iPhone 应用程序。我正在根据具有焦点的窗口隐藏和显示选项卡组。

dashWin.addEventListener("focus",function(e) {
    if (dashWin.tabGroupVisible == true) {
        dashWin.tabGroupVisible=false;
        tabGroup.animate({bottom:-50,duration:500});
    }
});

上面的代码在 dashWin 接收到焦点事件时隐藏了选项卡组。但是,当事件在 iPhone 模拟器中运行时触发时,我会在 Titanium 控制台中看到此消息:

在意外状态下完成导航转换。导航栏子视图树可能已损坏。

Google 搜索出现了一个结果:Another StackOverflow question,这可能暗示了正在发生的事情。

【问题讨论】:

  • 附加信息:当我使用子窗口上的“后退”按钮将选项卡返回到 dashWin 时,我只会收到该消息。如果我使用选项卡返回 dashWin,我不会收到消息。

标签: iphone ios-simulator titanium appcelerator appcelerator-mobile


【解决方案1】:

通常,标签组充当应用导航的根。当用户点击一个选项卡时,该选项卡的窗口将获得焦点。

接下来,当用户触发需要出现新窗口的操作时,它通常以模态方式出现或出现在当前窗口的顶部(在导航堆栈的意义上)。在后一种情况下,告诉当前选项卡打开新窗口。

如果您将 tabBarHidden 属性设置为 false(当您创建新窗口时),当新窗口被当前标签打开时,标签栏将为您隐藏。

这种更标准的方法对您有用吗?

【讨论】:

  • 如果我将标签栏创建为隐藏,我无法使标签栏重新出现在 Titanium 的子页面上。至少那是我的回忆。现在已经是一周前了,这似乎是永恒的。但是您的回答正确地暗示了我正在为用户创建非标准的导航体验。我已经放弃了这个想法,根本不使用标签。我在pttrns.com 上查看了类似应用程序的界面,并意识到我的方法是愚蠢的。尽管如此,我还是很好奇错误消息的确切含义,对此可以做什么(如果有的话),以及为什么它似乎非常罕见。
【解决方案2】:

我有 segues 正在返回导致此问题的主导航控制器。我通过将主导航控制器设置回堆栈顶部来解决问题。代码如下:

- (void) viewDidAppear:(BOOL)animated
{
    [self.navigationController popToRootViewControllerAnimated:NO];
}

【讨论】:

    【解决方案3】:

    当我通过情节提要将Action SegueSelection Segue 从一个视图链接到另一个视图并再次以编程方式执行相同的转场时出现此错误,这使得导航控制器执行相同的转场两次。

    本案例的2个解决方案:

    1. 删除推送视图的代码。只需让故事板为您执行转场即可。这适用于大多数情况。
    2. Action SegueSelection Segue 替换为Manual Section 并自己执行- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender。当您想根据发件人自定义 segue 的行为时,您可能会发现此解决方案很有用。

    【讨论】:

      【解决方案4】:

      最近,我遇到了同样的问题。原因是: - 我试图错误地弹出视图控制器两次。 您可以通过在推送和弹出视图控制器上设置断点来检查此崩溃

      【讨论】:

        猜你喜欢
        • 2015-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-07
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多