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
中有代码的完整实现
不会调用 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
中有代码的完整实现