Iphone &引用;开始/结束外观转换的调用不平衡”;在带有情节提要的XCode 4中以模式方式推送视图时出现警告
在网上做了一些没有成功的研究之后,我来这里问你关于我的警告的问题 实际上,我有一个带有导航控制器的视图V1,我想在V1完成加载后推送一个模式视图V2。 所以我使用了Iphone &引用;开始/结束外观转换的调用不平衡”;在带有情节提要的XCode 4中以模式方式推送视图时出现警告,iphone,ios,xcode4,uinavigationcontroller,storyboard,Iphone,Ios,Xcode4,Uinavigationcontroller,Storyboard,在网上做了一些没有成功的研究之后,我来这里问你关于我的警告的问题 实际上,我有一个带有导航控制器的视图V1,我想在V1完成加载后推送一个模式视图V2。 所以我使用了performsguewithidentifier方法(我使用的是故事板)。 这是我的密码: [self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self]; 当我编译时,我得到了以下警告: Unbalanced calls to begin/end a
performsguewithidentifier
方法(我使用的是故事板)。
这是我的密码:
[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self];
当我编译时,我得到了以下警告:
Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30>
对开始/结束外观转换的不平衡调用
有人能帮我吗?听起来您可能正在执行
-viewwilldisease:
中的步骤,从而生成两条-viewwilldisease:
消息,但没有两条相应的-viewdidisease
消息
尝试在
-viewDidDisplay
中执行segue,我遇到了这个问题,但我所做的是在UIViewController上执行segue,我链接了一个UIButton
中的segue,并将其编码为一个nextBtnPressed:
函数,因此我实际上是在按一个按钮时按下了两个新的UIViewController
。将其限制为仅一个segue修复了它。但是,我花了一些时间调查,才发现我做了这个加倍。原因是多方面的,并且非常特定于上下文和编程。例如,我当时所做的是
初始化声音文件,将其(异步)播放1.4秒
使用持续1.4秒的动画使图像在屏幕上移动
将计时器设置为步骤2后的1.4秒,按下viewcontroller
我发现,如果我没有这3个步骤的说明(如果我把它们弄混了),那么我会得到错误“不平衡调用…”。此外,如果我将viewcontroller的按下时间设置为小于1.4秒,我也会收到消息
因此,请检查您的程序指令的顺序和计时是否正确。'
表示动画在最后一个相关动画未完成之前启动。
那么,在推新的视图控制器之前,是否要弹出任何视图控制器?
或者可能正在生根发芽?如果是,请尝试在没有动画的情况下执行此操作
i、 e.[自导航控制器PoptorootViewController激活:否]
看看这是否解决了问题,在我的例子中,这就成功了。我在-viewDidLoad
中执行segue时遇到了这个问题,我在performSelector:withObject:afterDelay
中调用performsgue
来解决这个问题,延迟为0,但这很混乱。此修复程序允许我直接在-viewdide:
中调用performsgue
。谢谢在viewdidload中有一个pop呼叫。将调用移动到ViewDidDisplay中,并为我修复了它。-ViewDidDisplay:
是UIViewController
上的一个方法,可以在UIViewController
子类中重写。视图出现在屏幕上后,-viewdide:
消息将发送到视图控制器。您是最好的。救了我一天。Thax非常感谢分享这一点。