Iphone 该怎么办;正在以意外状态完成导航转换。导航栏子视图树可能已损坏。”;
我正在用Appcelerator Tianium Mobile编写一个iPhone应用程序。我根据窗口的焦点隐藏和显示选项卡组Iphone 该怎么办;正在以意外状态完成导航转换。导航栏子视图树可能已损坏。”;,iphone,ios-simulator,titanium,appcelerator,appcelerator-mobile,Iphone,Ios Simulator,Titanium,Appcelerator,Appcelerator Mobile,我正在用Appcelerator Tianium Mobile编写一个iPhone应用程序。我根据窗口的焦点隐藏和显示选项卡组 dashWin.addEventListener("focus",function(e) { if (dashWin.tabGroupVisible == true) { dashWin.tabGroupVisible=false; tabGroup.animate({bottom:-50,duration:500});
dashWin.addEventListener("focus",function(e) {
if (dashWin.tabGroupVisible == true) {
dashWin.tabGroupVisible=false;
tabGroup.animate({bottom:-50,duration:500});
}
});
当dashWin收到焦点事件时,上面的代码隐藏选项卡组。但是,当事件在iPhone模拟器中运行时触发时,我在Tianium控制台中看到以下消息:
正在以意外状态完成导航转换。导航栏子视图树可能已损坏
谷歌搜索会出现一个结果:可能有一个关于发生了什么的提示。通常选项卡组充当应用程序导航的根。当用户点击某个选项卡时,该选项卡的窗口将被聚焦 接下来,当用户触发一个需要显示新窗口的操作时,它通常会以模式显示或显示在当前窗口的顶部(在导航堆栈意义上)。在后一种情况下,告诉当前选项卡打开新窗口 如果将tabBarHidden属性设置为false(创建新窗口时),则当当前选项卡打开新窗口时,选项卡栏将为您隐藏
这种更标准的方法对您有效吗?我有
序列
,它们返回到我的主导航控制器,这是导致这种情况的原因。我通过将主导航控制器设置回堆栈顶部修复了该问题。代码如下:
- (void) viewDidAppear:(BOOL)animated
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
当我通过情节提要将
动作序列
或选择序列
从一个视图链接到另一个视图,并以编程方式再次执行相同的序列时,我遇到了这个错误,这使得导航控制器执行相同的序列两次
本案例的2种解决方案:
操作序列
或选择序列
替换为手动部分
,并自己执行-(无效)PerformsguewithIdentifier:(NSString*)identifier sender:(id)sender
。当您希望根据发送方自定义segue的行为时,您可能会发现此解决方案很有用最近,我遇到了同样的问题。原因是: -我曾两次错误地尝试弹出视图控制器。
您可以通过在推送和弹出视图控制器上设置断点来检查此崩溃其他信息:我仅在使用子窗口上的“后退”按钮将选项卡返回到dashWin时收到此消息。如果我使用选项卡返回dashWin,则不会收到消息。如果我将选项卡栏创建为隐藏,则无法使其在Tianium中的子页面上重新出现。至少这是我的回忆。那是一个星期前的事了,现在看来是永恒的。但您的回答正确地暗示,我正在为用户创建非标准的导航体验。后来我放弃了这个想法,不再使用标签。我查看了类似应用程序的界面,意识到了我的方法的愚蠢。尽管如此,我还是很好奇错误消息到底意味着什么,人们可以对此做些什么(如果有的话),以及为什么它看起来非常罕见。