Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin表单:如何覆盖iOS上按下的OnBackButton_Ios_Xamarin_Navigation_Back Button - Fatal编程技术网

Xamarin表单:如何覆盖iOS上按下的OnBackButton

Xamarin表单:如何覆盖iOS上按下的OnBackButton,ios,xamarin,navigation,back-button,Ios,Xamarin,Navigation,Back Button,OnBackButtonPressed不会被调用。我看过其他地方,android硬件上的功能工作返回按钮。我想提醒用户在返回上一个屏幕之前输入pin码。我的页面不是普通页面。这是一个标签页。。如何覆盖iOS上的导航后退按钮。您需要将默认后退按钮替换为自定义后退按钮,Xamarin表单的导航栏映射到iOS中的UINavigationBar,因此您需要将自定义后退按钮设置为UILeftBarButtonItem,如下所示 public override void ViewWillAppear(boo

OnBackButtonPressed不会被调用。我看过其他地方,android硬件上的功能工作返回按钮。我想提醒用户在返回上一个屏幕之前输入pin码。我的页面不是普通页面。这是一个标签页。。如何覆盖iOS上的导航后退按钮。

您需要将默认后退按钮替换为自定义后退按钮,Xamarin表单的导航栏映射到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);
}
您还需要在本机和表单之间建立桥梁,以便可以在Xamarin PCL或共享项目中获得回调

这是一个完整的代码实现