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

时间:2017-05-24 10:10:44

标签: ios xamarin navigation back-button

OnBackButtonPressed没有被调用。我看过其他地方,这个功能在android硬件上工作按钮。我想提醒用户在返回上一个屏幕之前输入图钉。我的页面不是正常页面。它是一个标签页..我该怎么做才能覆盖iOS上的导航后退按钮。

1 个答案:

答案 0 :(得分:3)

您需要使用自定义后退按钮替换默认后退按钮,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

中包含完整的代码实现