【问题标题】:Xamarin iOS: navigation bar not showing after pushing viewXamarin iOS:推送视图后导航栏不显示
【发布时间】: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


【解决方案1】:

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

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

使用PushViewController 方法

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

现在ViewControllerNavigationController 包裹,您可以添加一个按钮或只调用NavigationController.PushViewController 方法。

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

我希望这会有所帮助!

【讨论】:

  • 你确实给了我一些灵感,让我更深入地研究一些东西,所以我明天有机会一定会尝试一些东西。另外,我不知道它可以与故事板一起使用!对于这个当前的项目,我已经走得太远了,因为没有故事板,我害怕为了实现它而撕毁我的整个项目。不过,当谈到未来的项目时,我肯定会更多地关注这个!如果我能弄清楚事情,我会接受这个答案。
  • 更新:已经好几年了,老实说我完全忘记了这个问题。自从发布这个问题以来,我已经与开发这个项目的小组分道扬镳,我现在甚至没有能力测试这个答案。 ...所以,我目前不太确定如何处理这个答案。
  • 如果您不确定此答案是否对您有所帮助,您可能应该关闭该问题。由于这个答案是 2 年前发布的,我怀疑有多少人仍然在这个答案中找到用处。
猜你喜欢
  • 2019-03-11
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多