"while a presentation is in progress"收到此警告 (Xcode)



在我正在编写的项目中,当我呈现一个新的视图控制器时,我收到此错误:

尝试呈现....当演示正在进行中!

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

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

该程序不会崩溃或运行良好的任何东西,并且我的代码中没有错误或警告。所以我的问题是:这是我应该关注的事情吗,如果是,我该如何解决?

提前致谢:)

就像你说的,这可能是由于同时呈现两个视图控制器引起的。等待显示第二个视图控制器,直到第一个视图控制器完全呈现。一个好的位置是在viewDidAppear这样做。

就我而言,我通过UIStoryboardSegueUIViewControllers UIButton与第二个UIViewController连接起来。在我的代码中,a 以编程方式第二次调用它。因此,按UIButton导致显示指定视图两次。

我找到了我的问题,正如斯科特所写的那样,这是因为我同时展示了 2 个视图控制器。发生这种情况是因为我有一个按钮,它有一个UILongPressGestureRecognizer,它显示了新的视图控制器。问题是,当使用UILongPressGestureRecognizer时,正在调用的方法被调用两次。首先,当检测到长按并将手指从屏幕上松开时。因此,同一视图的当前ViewController方法被调用了两次。我通过仅对第一次检测做出反应来解决此问题。这是代码:

- (void)loadButtonSettings:(UILongPressGestureRecognizer *)recognizer {
   if (recognizer.state == UIGestureRecognizerStateBegan) {
   }
}

最新更新