Ios UIAlertController根本不出现
我正在尝试向我的应用程序添加一个Ios UIAlertController根本不出现,ios,objective-c,uialertcontroller,Ios,Objective C,Uialertcontroller,我正在尝试向我的应用程序添加一个UIAlertController,但它根本没有出现。我尝试了以下方法: UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Message" message:@"Web Service is not available." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* ok
UIAlertController
,但它根本没有出现。我尝试了以下方法:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Message" message:@"Web Service is not available." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:ok];
[self presentViewController:alertController animated:YES completion:nil];
但这根本没有出现,我做错了什么?在故事板的初始视图控制器中,这必须在
视图中出现:
。否则,如果在XIB中使用,它还将在viewwillbeen
和viewDidLoad
中显示警报
我在iOS 8和iOS 9的单视图应用程序模板中运行了您的代码,将代码放入以下视图生命周期回调中给定的ViewController中
viewdide出现
-成功
视图将出现
-未显示警报;在控制台中导致此输出:警告:尝试显示其视图不在窗口层次结构中的对象李>
viewDidLoad
-未显示警报;在控制台中导致此输出:不允许在视图控制器解除分配时尝试加载视图控制器的视图,这可能会导致未定义的行为()
}
我把这个方法叫做
[self showMessage:YES];
它运行良好,可能会有人从中受益。此代码应该运行良好。你能告诉我们这个片段出现的上下文的其余部分吗?你发布的代码看起来应该可以工作。您用来显示该警报的方法是什么样的?该方法被调用了吗?您是否试图在主线程之外显示此警报控制器?您是否从视图控制器中演示它?您是否收到任何错误?为什么要在viewDidLoad中显示警报控制器?如果您正在加载一个视图,但没有必要显示它,该怎么办?要回答第一个问题,您可能希望在视图出现时立即显示警报。然而,我只是简单地提到,如果麦格纳的代码在viewDidLoad
中。我刚刚尝试将他的代码放入iOS 9中带有情节提要(单视图应用程序模板)的viewDidLoad
方法中,但我得到了一个错误:不允许在视图控制器解除分配时尝试加载视图,可能会导致未定义的行为()。我将展开我的答案并进行一些解释。视图出现时不会立即调用viewDidLoad。这将是一个很好的选择。是的,在视图加载时在视图上显示视图控制器是没有意义的。我的意思是它会立即显示。而且,我认为问题不在于什么是有意义的。这是关于从UIAlertViewController引用中获得一个警报来显示。我使用了相同的方法,但它甚至没有显示ViewDidDisplay(),所以是否有任何原因,我们需要显示限制用户,我们可以调用任意位置作为我们调用uialertview的任意位置任何类或方法,为什么我们不调用它。???
[self showMessage:YES];