Xamarin 表单:如何覆盖 iOS 上的 OnBackButtonPressed

Xamarin form: How to override the OnBackButtonPressed on iOS

不会调用 OnBackButtonPressed。我看过其他地方,该功能适用​​于 android 硬件后退按钮。我想提醒用户在返回上一个屏幕之前输入密码。我的页面不是普通页面。这是一个标签页。我应该怎么做才能覆盖 iOS 上的导航后退按钮。

您需要将默认后退按钮替换为自定义后退按钮,Xamarin Forms 的导航栏映射到 iOS 中的 UINavigationBar,因此您需要将自定义后退按钮设置为 UILeftBarButtonItem 如下所示

public override void ViewWillAppear(bool animated)
{
    var backBtn = new UIButton(UIButtonType.Custom)
    {
        // setup your custom back button with title, image etc
    }
    backBtn.TouchDown += (sender, e) =>
    {
        //Handle back click here
    };

    NavigationController.TopViewController.
    NavigationItem.LeftBarButtonItem = new UIBarButtonItem(backBtn);
}

您还需要在 Native 和 Forms 之间建立桥梁,以便您可以在 Xamarin PCL 或共享项目中获得回调。

article

中有代码的完整实现