2

在一個項目中,我寫的時候我提出一個新的視圖控制器我得到這個錯誤:得到這個警告「而演示正在進行」(Xcode中)

試圖提出....而演示正在進行中!

我認爲這是因爲我第一次提出一個新的視圖控制器,然後在該視圖中我呈現另一個視圖控制器。

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

該程序不會崩潰或任何它運行得很好,並且在我的代碼中沒有錯誤或警告。所以我的問題是:這是我應該關心的東西,如果是的話,我該如何解決它?

感謝提前:)

回答

2

它,就像你說的,可能是在同一時間呈現兩個視圖控制器造成的。等待展示第二個視圖控制器,直到完成第一個視圖控制器。一個好的位置將在viewDidAppear中這樣做。

0

我想出了我的問題,正如Scott寫的那樣,是因爲我在同一時間展示了2個視圖控制器。它發生是因爲我有一個帶有UILongPressGestureRecognizer的按鈕,它顯示了新的視圖控制器。問題是當使用UILongPressGestureRecognizer時,被調用的方法被調用兩次。首先檢測到長按時以及手指從屏幕上鬆開時。因此,同一視圖的presentViewController方法被調用了兩次。我通過對第一次檢測做出反應來解決這個問題。下面是代碼:

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

    if (recognizer.state == UIGestureRecognizerStateBegan) { 

    } 
} 
1

在我的情況,我用UIStoryboardSegue連接的UIViewControllersUIButton與第二UIViewController。在我的代碼中,以編程方式第二次調用它。因此按UIButton導致兩次顯示指定的視圖。

相關問題