在演示文稿正在进行时获取此警告“(Xcode)

时间:2012-12-13 20:03:35

标签: objective-c xcode warnings presentmodalviewcontroller presentation

在我写的一个项目中,当我提出一个新的视图控制器时,我得到了这个错误:

  

在演示文稿正在进行时尝试演示....

我认为这是因为我首先提出了一个新的视图控制器,然后在该视图中我呈现了另一个视图控制器。

- (void)loadLabelSettings {
    LabelSettingsViewController *labelSettings = 
      [[LabelSettingsViewController alloc] init];
    labelSettings.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:labelSettings animated:YES completion:nil];
}

程序没有崩溃或运行得很好,我的代码中没有错误或警告。所以我的问题是:这是我应该关注的问题,如果是,我该如何解决呢?

提前致谢:)

3 个答案:

答案 0 :(得分:2)

就像你说的那样,可能是同时出现两个视图控制器造成的。等待呈现第二个视图控制器,直到第一个视图控制器完全呈现。一个好的位置是在viewDidAppear中执行此操作。

答案 1 :(得分:1)

在我的情况下,我将UIViewControllers UIButton和第二个UIViewControllerUIStoryboardSegue相关联。在我的代码中,以编程方式第二次调用它。因此,按UIButton会导致指定视图呈现两次。

答案 2 :(得分:0)

我想出了我的问题,斯科特写道,因为我同时展示了2个视图控制器。之所以发生这种情况,是因为我有一个带有UILongPressGestureRecognizer的按钮,它显示了新的视图控制器。问题是当使用UILongPressGestureRecognizer时,被调用的方法被调用两次。首先检测到长按并且手指从屏幕上释放。所以同一视图的presentViewController方法被调用了两次。我通过仅对第一次检测做出反应来解决这个问题。这是代码:

- (void)loadButtonSettings:(UILongPressGestureRecognizer *)recognizer {

   if (recognizer.state == UIGestureRecognizerStateBegan) {

   }
}