【问题标题】: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
          }
        }
        
      

      【讨论】:

        猜你喜欢
        • 2021-06-04
        • 2015-05-11
        • 2020-05-15
        • 2014-10-31
        • 2018-02-12
        • 2014-01-20
        • 2015-01-13
        • 2013-08-01
        • 2019-04-13
        相关资源
        最近更新 更多