【发布时间】:2017-02-21 02:24:59
【问题描述】:
我已经在代码中创建了我的所有 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) 之类的事情什么都不做。
如何让导航栏显示?我确定我在某个地方搞砸了。我需要它,这样我才能让用户回到他们之前所在的控制器。
【问题讨论】:
-
Flyout Navigation 控制器可能是保留导航堆栈的控制器。检查 NavigationController 在推送的控制器中是否有值,有一个名为 ViewControllers 的属性显示导航堆栈。
-
试试..this.PushViewController(new UINavigationController(vw), true)
-
@MohibSheth 我试过了,它给了我一个错误,指出它不能接受 UINavigationControllers 的那个参数。
-
@Pilatus 但 FlyoutNavigationController 基于 UIViewController 类。 ...我想这不一定会阻止它处理导航堆栈,所以也许确实值得进行更多调查。但是,我(到目前为止)使用 FlyoutNavigationController 进行的测试并没有产生任何丰硕的成果。
-
看看示例应用程序和代码如果示例仍然没有解释太多..github.com/Clancey/FlyoutNavigation/tree/master/…
标签: ios xamarin uinavigationcontroller xamarin.ios uinavigationbar