首页 > 解决方案 > 为什么导航标题隐藏在ios13中?

问题描述

当我使用 PushViewController 添加导航标题时,此代码仍然可见:

View viewp = new View();
NavigationController.PushViewController(viewp, false);

但是当我添加 PresentViewControllerAsync 时,导航标题被隐藏了,怎么了?

viewp.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
this.PresentViewController(viewp, true, null);  

我正在使用ios13,我怎么了?左右按钮不显示

在此处输入图像描述

标签: c#xamarinxamarin.ios

解决方案


他们没有任何问题,这是正常现象。

  • PushViewController需要 Root View Controller 是NavigationController,它只能在 NavigationController 中使用。因此,调用时需要如下:

    NavigationController.PushViewController(xxx)

这也是这个方法可以看到Navigation Bar的原因。下一页在 Navigation Controller 下。看看UINavigationControllerpushViewController:animated: defined :

在此处输入图像描述

  • 但是, 无论根视图控制器是 NavigationController 还是其他控制器,都可以调用 PresentViewController 它只是在对话框控制器的窗口中显示一个视图控制器。然后在下一个视图中不会显示导航栏,因为它不在导航控制器堆栈的堆栈下。

在此处输入图像描述

这里有一些关于它们之间差异的很好的讨论以供参考。

pushViewController 和 showViewController 的区别

presentViewController 和 UINavigationController 的区别?


推荐阅读