ChildviewController 的 UINavigationItem

Posted

技术标签:

【中文标题】ChildviewController 的 UINavigationItem【英文标题】:UINavigationItem of ChildviewController 【发布时间】:2015-02-03 11:02:40 【问题描述】:

我有基本控制器和子视图控制器。我想在情节提要的基本控制器中创建UINvaigationItem,以使子控制器继承它并显示。我在storyboard 中为基本控制器创建了这个UINavigationItem。子控制器未从基本控制器显示此UINavigationItem,并且它的属性全部为零。我怎样才能让 BaseController 中的 UINavigationItem 在 ChildViewControllers 中?

这是storyboard的图片,左边是Base Controller,右边是Child ViewControllers。

【问题讨论】:

我不确定我是否理解你的问题,你是在问如何做到这一点? 是的,如果你有一些想法,那就太好了 如果您有任何问题,请附上您的代码,并尝试重新表述问题以便更容易理解。 几乎没有代码,我会改写。我有基本控制器和子视图控制器。我想在情节提要的基本控制器中创建 UINvaigationItem ,以使子控制器继承它并显示。我在情节提要中为基本控制器创建了这个 UINavigationItem。子控制器未从 BASE 控制器显示此 UINavigationItem,并且它的属性全部为零。如何使 BaseController 中的 UINavigationItem 在 ChildViewControllers 中? 有人有什么想法吗? 【参考方案1】:

基本上你不能取消继承 ChildViewController 中的 UINavigation,因为它是 UINavigation 中视图堆栈的一部分,但你可以调用

// hide navigation bar
self.navigationController.navigationBarHidden = YES;

这将隐藏 ChildViewController 上的导航栏

您可以使用 ChildViewController 中的pop 方法以编程方式控制导航堆栈

编辑

根据你的照片,我发现你还没有将 storyBoard 中的所有 ViewControlleres 连接到 navigationViewController。

我建议不要像你那样创建 UIViewController。 1) 只需添加和连接您希望在导航堆栈中的视图控制器

2) 选择它们并在 Xcode 菜单中转到 Editor->Embed in-> Navigation Controller

这样,所有视图都将包含在导航堆栈中并引用 UINavigationViewController

【讨论】:

这个答案是什么问题?请阅读我最后的评论。 您是如何创建导航栏的?从资产库中拖出?还是你嵌入了它? 我没有创建NavigationBar,导航栏是通过UINavigationController创建的。我为基本控制器创建 UINavigationItem 供孩子使用。 你可以添加你的故事板的照片吗? 我添加了故事板的照片

以上是关于ChildviewController 的 UINavigationItem的主要内容,如果未能解决你的问题,请参考以下文章

从 ChildViewController 呈现 ModalView

自动将事件从 ChildViewController 传递到 parentViewController

如何在全屏 ChildViewController 上显示 UIPageControl?

导航栏未显示在 childViewController 内

UIView 插座和 ChildViewController 有啥区别?

ChildviewController 的 UINavigationItem