在Xamarin中隐藏iOS导航栏但保留向后滑动的功能

时间:2017-09-10 16:03:43

标签: xamarin xamarin.ios xamarin.forms

我试图在Xamarin上隐藏iOS上的导航栏,但我想保持刷回到最后一页的能力。

我试过这样做:

        this.ViewController.NavigationController.NavigationBar.Hidden = true;

和此:

        this.ViewController.NavigationController.NavigationBarHidden = true;

在自定义PageRenderer中,但这些都不会隐藏导航栏。如果我在推送页面时删除了导航栏,我也无法向后滑动。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

试试这个:

public class PageCustomRenderer : PageRenderer, IUIGestureRecognizerDelegate
{
    public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);

        if (NavigationController != null)
        {
            NavigationController.NavigationBarHidden = true;
            NavigationController.InteractivePopGestureRecognizer.Delegate  = this;
            NavigationController.InteractivePopGestureRecognizer.Enabled = true;
        }
    }
}
iOS中的PageRender中的

this已经是ViewController,因此您可以从那里访问NavigationController

您需要让PageRenderer实施IUIGestureRecognizerDelegate,以便您可以将其作为InteractivePopGestureRecognizer的{​​{1}}

的代表

希望这会有所帮助.-