呈现给具有Webview的View Controller时未显示警报

时间:2019-07-18 06:23:03

标签: swift wkwebview

我正在尝试在使用WKWebView的Web视图的视图控制器中显示警报框。我有一个侧面菜单,该菜单是我在另一个继承UIView的类中创建的,并且该侧面菜单具有注销选项,所以我希望尽快当我单击注销选项时,侧面菜单应从超级视图中删除,并发出警报。

我已经创建了侧面菜单并在单击选项时删除了视图。现在我只想显示警报。但这没有发生。

     func logout(){
    let alert = UIAlertController(title: "", message: "Do you want to logout from the application", preferredStyle: .alert)

    alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
    alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))
    let vc = WebViewController()
    vc.present(alert, animated: true, completion: nil)

     }

单击注销选项后,应立即发出警报。

2 个答案:

答案 0 :(得分:0)

您的VC(即WebViewController)尚未显示。

在当前的ViewController上使用self.present(...)方法,例如:

 func logout(){
    let alert = UIAlertController(title: "", message: "Do you want to logout from the application", preferredStyle: .alert)

    alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
    alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))

    self.present(alert, animated: true, completion: nil)

     }  

答案 1 :(得分:0)

编写时出现问题

let vc = WebViewController()

创建WebViewController()的新对象,以便警报出现在您在上一个对象中创建的新对象中,或者从其他视图调用函数logout()

因此您需要在需要显示警报的地方传递UIViewController对象

 func logout(vc: UIViewController){
    let alert = UIAlertController(title: "", message: "Do you want to logout from the application", preferredStyle: .alert)

    alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
    alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))
    vc.present(alert, animated: true, completion: nil)

     }

如何拨打电话

logout(vc: self)