防止 UIAlertController 在 UIAlertAction 上解除

Prevent UIAlertController from dismissing on UIAlertAction

我正在开发其中一个应用程序,我在其中使用 UIAlertController 促进用户强制更新,其中我不想让用户执行任何 activity 直到并且除非他更新来自 AppStore 的应用程序。

为了实现这一点,我编写了以下代码。

if (needToUpdate)
{
    var alert = UIAlertController(title: "New Version Available", message: "There is a newer version available for download! Please update the app by visiting the Apple Store.", preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(
        UIAlertAction(
            title: "Update",
            style: UIAlertActionStyle.Default,
            handler: { alertAction in
                UIApplication.sharedApplication().openURL(NSURL(string : "https://itunes.apple.com/app/cheapo-casino-free-casino/id637522371?ls=1&mt=8")!)
                alert.dismissViewControllerAnimated(true, completion: nil)
            }
        )
    )
    self.presentViewController(alert, animated: true, completion: nil)
}

它运行良好,但只要用户按下“更新”按钮,它就会转到应用商店,如果用户不更新应用程序。 he/she 将返回应用程序并可以执行任何 activity 预期之外的操作。

有什么方法可以显示 UIAlertController 即使用户按下更新按钮?

您可以在appDelegate中查看应用程序的版本。

func applicationDidBecomeActive(_ application: UIApplication) {
     //check the app version here and if version mismatch is there show the alert.
     // if the version is different then make initial viewController as root view controller. and then present alert from that view controller.
}