ios – 解雇由模态视图控制器提供的UIAlertController

我似乎遇到了类似于未解决的问题中的问题: UIAlertController dismissing his presentingViewController

我在普通的UIViewController上呈现一个模态视图控制器.然后我在该模态视图控制器上弹出警报.当我按“ok”关闭警报(使用下面的代码生成)时,模态视图控制器也被解除.

UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK"
                                             style:UIAlertActionStyleDefault 
                                           handler:^(UIAlertAction *action{ 
                                                    [self dismissViewControllerAnimated: YES completion: nil];}];

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Sign up problem."
                                                               message:@"Some fields are empty. Please check your inputs and try again."
                                                        preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];

我该如何解除警报?

我意识到我可以通过使用导航控制器类型设置而隐藏导航栏来避免这个问题,所以我得到了与模态视图控制器相同的感觉,但这看起来很傻.谢谢.

解决方法

不要在按钮处理程序中调用self dismissViewController.这特别声明您希望视图控制器被解雇.

您无需关闭警报.它会自动解散自己.您应该在按钮处理程序中执行的唯一操作是执行您需要的任何操作.如果你不需要做任何事情,什么也不做.

如果您的警报只是一条消息而您不需要执行任何操作,请执行以下操作:

UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];

相关文章

背景 前端时间产品经理决定使用百度统计,使得 工程B 中原统计sdk-友盟统计,需要被去除。之前尝试去除...
结论: alloc负责分配内存和创建对象对应的isa指针; init只是返回alloc生成的对象。 所以alloc后,多次...
更新 如果UI愿意把启动图切割成n份,按一定约束在launchscreen.storyboard中进行排版,启动图效果会更好...
最近在看一本书《Effective OC 2.0》,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环。...
// // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import &a...
背景介绍 一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但...