Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Ios 删除导航栏中的后退箭头保留后退按钮标题_Ios_Xamarin_Xamarin.forms_Navigationbar - Fatal编程技术网

Ios 删除导航栏中的后退箭头保留后退按钮标题

Ios 删除导航栏中的后退箭头保留后退按钮标题,ios,xamarin,xamarin.forms,navigationbar,Ios,Xamarin,Xamarin.forms,Navigationbar,我有xamarin forms ios应用程序,我需要删除导航栏中的后退箭头,但标题应该显示出来,当用户单击后退按钮标题时,它应该导航到上一个视图。 我试着用` NavigationPage.SetBackButtonTitle(this, "Cancel"); NavigationPage.SetHasBackButton(this, false); 但是返回箭头仍在显示,是否有任何理由在AppDelegate.cs文件中,在FinishedLaunching方法中,只使用文本Cancel

我有xamarin forms ios应用程序,我需要删除导航栏中的后退箭头,但标题应该显示出来,当用户单击后退按钮标题时,它应该导航到上一个视图。 我试着用`

NavigationPage.SetBackButtonTitle(this, "Cancel");

NavigationPage.SetHasBackButton(this, false);

但是返回箭头仍在显示,是否有任何理由在
AppDelegate.cs
文件中,在
FinishedLaunching
方法中,只使用文本
Cancel
而不使用

UINavigationBar.Appearance.BackIndicatorImage = new UIImage();
UINavigationBar.Appearance.BackIndicatorTransitionMaskImage = new UIImage();
但是,这将为每个页面删除它。如果你只想要一个页面,我建议像EvZ已经提到的那样:使用一个模式页面或找到另一种方式


另一种方法是将上述行设置为
null
,这将恢复正常箭头。但这意味着要实现一个自定义呈现程序、依赖项服务或类似的功能。

我通过添加一个自定义呈现程序来解决我的问题,如下所示

public override void ViewWillAppear(bool animated)
{      
    base.ViewWillAppear(animated);
    this.NavigationController.TopViewController.NavigationItem.LeftBarButtonItem =new UIBarButtonItem(“Cancel”, UIBarButtonItemStyle.Plain, (sender, args) => { });      
}

移除导航栏,使用导航位置上的图像/标题,并将其写入图像/标题


image onclick event into write-back命令

听起来你应该用模式页面取代分层导航。@EvZ,我尝试使用Navigation.PushModalAsync代替Navigation.PushAsync,但运气不好,Navigation.PushModalAsync使用这个删除整个导航栏。这是预期的结果,你必须创建一个模式标题视图并将其放在页面顶部。你把那段代码放在哪里了?@Daniel,我从xaml.cs构造函数中保留了第一个视图,从这里导航到另一个视图,我想删除/隐藏第二个视图中的返回箭头。
protected override bool OnBackButtonPressed(){if(_browser.CanGoBack){u browser.GoBack();返回true;}否则{//wait Navigation.popsync(true);base.OnBackButtonPressed();返回true;}