如何在ViewWillDisappear中管理代码?

时间:2017-07-19 07:04:12

标签: ios xamarin.ios viewwilldisappear

我在xamarin.ios工作。我想在用户点击顶部的后退导航按钮时显示确认弹出窗口,如果用户确定他想要返回上一个屏幕。

我覆盖ViewWillDisappear方法并在那里调用我的弹出窗口,但是在用户从弹出窗口确认之前,屏幕仍会返回上一屏幕。

弹出窗口显示并在该屏幕后面移动到上一个屏幕。

我如何管理它以便屏幕无法移动,直到用户从弹出窗口确认它为止?

2 个答案:

答案 0 :(得分:0)

viewWillDisappear是一个已经过渡的功能,您无法取消。 您可以执行的操作是隐藏backBarButton而不是它,提供自定义navigationItem.leftBarButton,并为其分配@IBAction。 在@IBAction中,您实现了所需的功能,例如显示弹出窗口。

答案 1 :(得分:0)

您无法在viewWillDissappear中执行您想要执行的操作。相反,您可以将自定义操作分配给后退按钮,如下所示:

 self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action:#selector(self.displayConfirmation(sender:)))

实施选择器:

func displayConfirmation(sender: AnyObject) {
    let alert = UIAlertController(title: "", message: "Go back?", preferredStyle: .actionSheet)
    alert.addAction(UIAlertAction(title: "No", style: UIAlertActionStyle.default, handler: nil))
    alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.default, handler: { action in
         self.navigationController?.popViewController(animated: true)
    }))
    self.present(alert, animated: true, completion: nil)
}