Xamarin iOS:推送视图后不显示导航栏
Xamarin iOS: navigation bar not showing after pushing view
我已经在代码中创建了所有 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)
的事情什么都不做。
如何显示导航栏?我确定我在某个地方搞砸了。我需要它,这样我就可以让用户回到他们之前所在的控制器。
在研究 FlyoutNavigation
之后,似乎可以使用 Storyboard
尝试下载示例项目 (as pointed out by Mohib Sheth) 并在按钮和第二个视图之间创建一个推送段。
使用PushViewController
方法
如果您仍想使用 PushViewController
方法,请确保您的初始视图(如单击 FlyOutNavigation 项目后所示)是 NavigationController
。此 NavigationController
将控制当前页面的导航堆栈。
现在 ViewController
被 NavigationController
包裹,您可以添加一个按钮或只调用 NavigationController.PushViewController
方法。
PushView.TouchDown += (evt, args) =>
{
NavigationController.PushViewController(new UIViewController(), true);
};
希望对您有所帮助!
我已经在代码中创建了所有 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)
的事情什么都不做。
如何显示导航栏?我确定我在某个地方搞砸了。我需要它,这样我就可以让用户回到他们之前所在的控制器。
在研究 FlyoutNavigation
之后,似乎可以使用 Storyboard
尝试下载示例项目 (as pointed out by Mohib Sheth) 并在按钮和第二个视图之间创建一个推送段。
使用PushViewController
方法
如果您仍想使用 PushViewController
方法,请确保您的初始视图(如单击 FlyOutNavigation 项目后所示)是 NavigationController
。此 NavigationController
将控制当前页面的导航堆栈。
现在 ViewController
被 NavigationController
包裹,您可以添加一个按钮或只调用 NavigationController.PushViewController
方法。
PushView.TouchDown += (evt, args) =>
{
NavigationController.PushViewController(new UIViewController(), true);
};
希望对您有所帮助!