2

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

尝试演示......在演示过程中!

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

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

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

提前致谢 :)

4

3 回答 3

2

正如您所说,这可能是由于同时呈现两个视图控制器引起的。等待呈现第二个视图控制器,直到完全呈现第一个视图控制器。一个好的位置是在viewDidAppear.

于 2013-02-01T07:32:51.777 回答
1

就我而言,我通过 a 将 a与UIViewControllers UIButton一秒连接起来。在我的代码中,第二次以编程方式调用它。所以按两次导致出现指定的视图。UIViewControllerUIStoryboardSegueUIButton

于 2015-03-26T13:22:47.267 回答
0

我发现了我的问题,正如 Scott 所写的那样,因为我同时展示了 2 个视图控制器。发生这种情况是因为我有一个带有 UILongPressGestureRecognizer 的按钮,它显示了新的视图控制器。问题是当使用 UILongPressGestureRecognizer 时,被调用的方法被调用了两次。首先是检测到长按以及手指从屏幕上松开时。所以同一个视图的presentViewController方法,被调用了两次。我只对第一次检测做出反应来解决这个问题。这是代码:

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

   if (recognizer.state == UIGestureRecognizerStateBegan) {

   }
}
于 2013-06-27T19:22:09.083 回答