当前,我有一个类,使用户无法使用后退手势返回到iOS平台上的上一页,此代码有效,但是当用户执行后退手势时导航侧栏仍会出现,这是他们的禁用此功能的方法。
我当前的代码停止后退:
using DisableSwipe.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(ContentPage),
typeof(NoBackSwipeRenderer))]
namespace DisableSwipe.iOS
{
public class NoBackSwipeRenderer : PageRenderer
{
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
if (ViewController != null && ViewController.NavigationController != null)
ViewController.NavigationController.InteractivePopGestureRecognizer.Enabled = false;
}
}
}
答案 0 :(得分:1)
您需要像这样在MasterDetailPage的Xaml代码中设置IsGestureEnabled="false"
:
<?xml version="1.0" encoding="utf-8"?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:Sample.Views"
x:Class="Sample.Views.MainPage"
IsGestureEnabled="false">
<MasterDetailPage.Master>
<views:MenuPage />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<views:ItemsPage />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
答案 1 :(得分:0)
要禁用MasterDetail视图上的滑动手势,您只需使用IsGestureEnabled
属性。参见:https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.masterdetailpage.isgestureenabled?view=xamarin-forms