从另一个视图调用方法时,UIAlertView延迟或不显示

问题描述 投票:0回答:2

通过另一个视图时,UIAlertView延迟或不显示。任何帮助将不胜感激。

-(void)viewDidLoad{
  levelContentController = [[UIAlertView alloc] initWithTitle:@""
                                                      message:@"Loading...
                                                     delegate:self
                                            cancelButtonTitle:nil
                                            otherButtonTitles:nil];
}
-(void)passToTestView:(id)sender{
[levelContentController show];
ViewController *viewController = [[ViewController alloc]init];
clickedLevelId = [[NSString alloc] init];
clickedLevelId = [testIdStringArray objectAtIndex:[sender tag]-1];
[viewController sendIndexMethod:sendIndex];
[viewController testCompletedArrayMethod:arrayOfCompletedTest];
[viewController parseTestURL:buttonTag getTestIdString:clickedLevelId];
viewController.viewSoundCheck = _levelSoundCheck;
[self presentViewController:viewController animated:YES completion:nil];

}

-(void)viewWillDisappear:(BOOL)animated{
    [levelContentController dismissWithClickedButtonIndex:0 animated:YES];
}
ios objective-c uialertview
2个回答
2
投票

上面的代码有一些问题。

调用passToTestView:选择器时,它会尝试显示alertView。但在同一方法中,您尝试呈现另一个视图控制器。

这将依次调用viewWillDisappear:隐藏alertView。

如果你想在显示ViewController时显示alertView,建议在UIAlertView类的ViewControllerviewDidLoad中创建和显示viewWillAppear:实例。不要在此viewController中初始化并显示它。


0
投票

要显示UIAlertView,您应该调用:

[contentLoadingController show];

请注意,在iOS9中不推荐使用UIAlertView,您应该使用UIAlertController。

© www.soinside.com 2019 - 2024. All rights reserved.