【问题标题】:ViewWillDisappear() not working as intentedViewWillDisappear() 未按预期工作
【发布时间】:2022-01-24 08:02:16
【问题描述】:
我正在尝试从 Android 实现类似于 OnBackPressed 的东西,这就是我目前所得到的:
public override void ViewWillDisappear(bool animated)
{
if(isTrue)
{
// Go to previous controller
base.ViewWillDisappear(animated)
}
else
{
// Stay on the current controller
}
}
但是,这似乎不起作用,因为总是调用 base.ViewWillDisappear()。我怎样才能防止这种情况发生?
【问题讨论】:
标签:
ios
xamarin.forms
xamarin.ios
【解决方案1】:
严格的答案是你不能。无论如何,向右滑动手势总是会返回。
除此之外,如果您可以在按下后退按钮时禁用此功能,您可以使用 David 回答中的自定义按钮技巧。
【解决方案2】:
您始终可以制作自定义后退按钮。
override func viewDidLoad() {
super.viewDidLoad()
let customBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(MyViewController.backClicked(sender:)))
self.navigationItem.leftBarButtonItem = customBackButton
self.navigationItem.hidesBackButton = true
}
func backClicked(sender: UIBarButtonItem) {
if(isTrue){
// Go to previous controller
_ = navigationController?.popViewController(animated: true)
}
else{
// Stay on the current controller
}
}