【问题标题】:UINavigationItem of ChildviewControllerChildviewController 的 UINavigationItem
【发布时间】: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 中?
  • 有人有什么想法吗?

标签: ios inheritance uinavigationcontroller uinavigationbar uinavigationitem


【解决方案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 供孩子使用。
  • 你可以添加你的故事板的照片吗?
  • 我添加了故事板的照片
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多