我想制作一个“评分应用”提醒,但出于某种原因,它会在显示之前被取消分配。
以下是代码:
func showAlert() {
if #available(iOS 8.0, *)
{
let alertController = UIAlertController(title: "Rate App", message: "Rate this app now", preferredStyle: .Alert)
let neverAction = UIAlertAction(title: "Never Show This Again", style: .Destructive, handler: { (action: UIAlertAction) in
self.userDefaults.setBool(true, forKey: "rateAlertRejected")
})
let rateAction = UIAlertAction(title: "Rate Now", style: .Default, handler: { (action: UIAlertAction) in
// Rate App
})
let remindAction = UIAlertAction(title: "Remind Me Later", style: .Cancel, handler: nil)
alertController.addAction(rateAction)
alertController.addAction(neverAction)
alertController.addAction(remindAction)
presentViewController(alertController, animated: true, completion: nil)
}
else
{
// Identical code (using UIAlertView) for iOS 7 which works perfectly
}
}
该方法在自定义展开segue之后执行(在某些条件下,但出于测试目的,它每次都会执行)。
为什么我会遇到这个问题?我之前使用过UIAlertController
,但我没有遇到任何问题。
答案 0 :(得分:1)
根据您的评论,您会在showAlert
中显示
在自定义展开segue之后执行的方法。
unwind segue解除了视图heriarchy,因此你的警报 没有引用要显示的视图控制器。
要解决此问题,请在展开的View控制器中显示警报,或等待在展开前完成警报控制器操作。