【问题标题】:UIAlertAction dismisses the UIAlertController in its callback [duplicate]UIAlertAction 在其回调中解除 UIAlertController [重复]
【发布时间】:2014-09-04 18:05:13
【问题描述】:

我正在尝试使用 iOS 8 中引入的新 UIAlertController。除了 UIAlertAction 总是在其回调中关闭警报控制器这一事实之外,一切都很好。以下是我的代码:

let alert = UIAlertController(title: "New Group", message: "Enter Group name", preferredStyle: UIAlertControllerStyle.Alert);
alert.addTextFieldWithConfigurationHandler({ [weak self] (nameField: UITextField!) in
    nameField.becomeFirstResponder();
    nameField.delegate = self;
    return;
})
alert.addAction(UIAlertAction(title: "Done", style: .Default, handler: { action in
    println("Done Entering");
}));
alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil));
self.presentViewController(alert, animated: true, completion: nil);

现在,当我单击“完成”按钮时,控件进入回调方法,然后即使我没有任何声明可以解除警报,警报也会被解除。这是默认行为吗?如果是,我如何确保在某些情况下警报保持在屏幕上(取决于我的情况)?我在这里遗漏了什么吗?

我非常感谢您对此提供任何帮助。

【问题讨论】:

    标签: swift ios8 uialertcontroller


    【解决方案1】:

    是的,警报按钮总是关闭警报,否则无法配置它们。如果您想要这种行为,则必须编写自己的警报。我写了SDCAlertView,它看起来很像普通警报,但有一些附加功能,包括防止在点击按钮时关闭警报。

    但是,它还没有使用 UIAlertController API,而且它在 iOS 8 上看起来与 UIAlertController 警报有点不同(大多数用户不会注意到)。

    编辑:它现在支持UIAlertController-like API。

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多