ViewWillDisappear() 没有按预期工作
ViewWillDisappear() not working as intented
我正在尝试从 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()
。我怎样才能避免这种情况?
您可以随时制作自定义后退按钮。
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
}
}
严格的回答是你不能。无论如何,向右滑动手势总是会返回。
除此之外,如果您只需在按下后退按钮时禁用它就可以了,您可以使用 David 的回答中的自定义按钮技巧。
我正在尝试从 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()
。我怎样才能避免这种情况?
您可以随时制作自定义后退按钮。
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
}
}
严格的回答是你不能。无论如何,向右滑动手势总是会返回。
除此之外,如果您只需在按下后退按钮时禁用它就可以了,您可以使用 David 的回答中的自定义按钮技巧。