在故事板的XCode 4中以模态方式推送视图时出现“不平衡调用开始/结束外观转换”警告

经过对networking的一些研究没有成功,我来这里问你关于我的警告的问题。

其实,我有一个导航控制器的视图V1,我想在V1加载完成后推送一个模态视图V2。 所以我使用performSegueWithIdentifier方法(我正在使用故事板)。 这是我的代码:

 [self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self]; 

当我编译时,我得到这个警告:

 Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30> 

谁能帮我?

这听起来像你可能正在执行-viewWillAppear:的segue -viewWillAppear:因此生成两个-viewWillAppear:消息没有2个相应的-viewDidAppear消息。

尝试在-viewDidAppear执行segue。

我有这个问题,但是我所做的是在一个UIViewController我已经链接了一个UIButton Segue,并将其编码到nextBtnPressed:函数,所以我实际上推一个button按下两个新的UIViewControllers 。 限制它只是一个赛格固定它。 但是经过一番调查才看到,我做了这个翻倍。

“不平衡的呼叫开始/结束外观转换为'

说animation是在最后一个相关的animation没有完成之前开始的。 那么,在推新的视窗控制器之前,你是否会popup视窗控制器? 或者可能会跳到根? 如果是的话,尝试这样做没有animation,即[self.navigationController popToRootViewControllerAnimated:NO];

看看这是否解决了这个问题,在我的情况下,这个伎俩。

原因是多方面的,对于上下文和编程非常具体。 例如,我正在做的是

  1. 初始化一个声音文件,播放(asynchronous)1.4秒,
  2. 使animation定时到1.4秒,使图像在屏幕上移动,
  3. 在步骤2之后将计时器设置为1.4秒,推动视图控制器。

我发现的是,如果我没有一个接一个的说明这三个步骤的话(如果我把它们混合起来),那么我得到错误“不平衡的呼叫…”。 另外,如果我把视图控制器的时间推到less于1.4秒,我也会收到消息。

因此,请检查程序指令的顺序和时间是否正确。