2016-09-16 34 views
1

我有一個呈現(模態)視圖控制器,需要提交一個操作表。我這樣做然而,當:可能在模態視圖控制器上使用UIAlertController?

UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; 

... 

[self presentViewController:actionSheet animated:YES completion:nil]; 

我得到這個:

Warning: Attempt to present <UIAlertController: 0x7fed4a608120> on <MyViewController: 0x7fed4d1ca520> which is already presenting (null) 

是否有解決辦法嗎?從一個呈現的視圖控制器中使用警報或操作表看起來很常見。

+0

在哪裏,當你想調用的代碼在你的問題?顯示更多上下文。 – rmaddy

+0

@rmaddy它是在按下視圖控制器時按下的按鈕。 – soleil

+0

這應該起作用。問題不在這裏。您可以創建一個示例項目來呈現一個模式,然後呈現一個操作表。如果失敗,請發佈代碼。 –

回答

0

我想你正在試圖展示視圖控制器的viewDidLoad的動作表。這是不顯示控制器中的操作表的原因,因爲控制器的視圖尚未加載。所以如果你這樣做,然後寫這些代碼來顯示你的voewDidAppear方法中的操作表,它會按照預期顯示操作表。

這是代碼片段。我已經測試過它,它正在工作。

代碼:

- (void)viewDidAppear:(BOOL)animated 
{ 
    UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"Hello" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; 

    UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 

    }]; 

    [actionSheet addAction:ok]; 

    [self presentViewController:actionSheet animated:YES completion:nil]; 

} 

快樂編碼...

相關問題