Xamarin iOS:推送视图后没有显示导航栏

时间:2016-04-04 01:08:49

标签: ios xamarin uinavigationcontroller xamarin.ios uinavigationbar

我已经在代码中创建了所有UI(因为我使用的Flyout Navigation似乎不适用于故事板)。我有一个名为MainController的UINavigationController和一系列视图控制器。当我使用根控制器启动应用程序时,它会很好地显示导航栏。

当我以编程方式创建一个名为ArticleDisplay的新ViewController时,我创建并推送它(在MainController中):

public void Open_Article(Post post)
{
    ArticleDisplay vw = new ArticleDisplay(this);
    vw.SetPost(post); // to set the iOS

    this.PushViewController(vw, true);
}

当我运行应用程序并显示ArticleDisplay控制器时,我没有获得导航栏(as you can see in this image),尽管主视图控制器有一个导航栏。尝试做this.SetNavigationBarHidden(false,true)之类的事情。

如何让导航栏显示?我确定我把它搞砸了。我需要它,所以我可以让用户回到之前的控制器。

1 个答案:

答案 0 :(得分:1)

在查看FlyoutNavigation之后,似乎可以使用Storyboard

Using storyboard

尝试下载示例项目(as pointed out by Mohib Sheth)并在按钮和第二个视图之间创建推送段。

使用PushViewController方法

如果您仍想使用PushViewController方法,请确保您的初始视图(如点击FlyOutNavigation项目后所示)为NavigationController。此NavigationController将控制当前页面的导航堆栈。

既然ViewControllerNavigationController包裹,您可以添加按钮或只调用NavigationController.PushViewController方法。

PushView.TouchDown += (evt, args) =>
{
    NavigationController.PushViewController(new UIViewController(), true);
};

我希望这有帮助!