我正在以下列方式创建提醒:
let alert = UIAlertView(title: "Network Unavailable",
message: "Oh noes!",
delegate: nil,
cancelButtonTitle: "OK")
alert.show()
工作正常。但是当我点击“确定”按钮关闭警报时,我明白了:
警告:尝试从视图控制器中解除< _UIAlertShimPresentingViewController:0x16ea2230>正在进行演示或解雇!
某些背景信息:
为什么会出现此警告的任何想法?如果它在未来版本的iOS中变成致命错误,我不想忽略它。
更新
我还应该在警报出现时添加,当我选择Debug - >查看调试 - >捕获视图层次结构,警报未显示在视图的3d视图中。我想知道这是否是我做错的症状。
答案 0 :(得分:5)
我收到同样的警告:
警告:尝试从视图控制器中解除< _UIAlertShimPresentingViewController:>正在进行演示或解雇!
在iOS8中,UIAlertController取代了UIAlertView。这应该解决你的警告(在Objc中):
UIAlertController *alert =
[UIAlertController alertControllerWithTitle:@"Network Unavailable"
message:@"Oh noes!"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction =
[UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
}];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];
有关详细信息,请参阅documentation for UIAlertController。