2016-09-16 47 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]; 

} 

快乐编码...

相关问题