【问题标题】:Edit parent view controller's title from child从子级编辑父视图控制器的标题
【发布时间】:2013-11-24 00:02:12
【问题描述】:

我在 UIPageViewController 中有基于 this tutorial 用于 UIPageViewController 的带有 UICollectionViews 的应用程序,现在我已经在导航控制器中嵌入了主视图控制器,我想在详细视图时动态更改导航栏的标题,但是我该如何访问是吗?

一开始我尝试嵌入导航控制器Page View Controller,但是没有显示导航栏。

编辑: 我发现,我可以将导航项添加到 Time Snap Detail View Controller 并在此处设置其标题,即使它在情节提要中不可见。

但是当我在页面视图控制器中时,如何在导航栏中编辑标题?(在这种情况下,导航控制器的堆栈上是主视图控制器,它具有页面视图控制器作为子视图控制器)。

【问题讨论】:

  • 您是否在页面视图控制器中尝试过self.title = @"My Title"
  • 嗨,它不起作用,在父视图控制器中,它是这样添加的:[self addChildViewController:self.pageController]; [[self view] addSubview:[self.pageController view]]; [self.pageController didMoveToParentViewController:self];
  • 然后self.parentViewController.title = @"My Title"?
  • 这个也不行,self.parentViewController是只读的
  • 您没有为self.parentViewController 分配任何内容,只是更改了标题。那也不行?

标签: ios objective-c uinavigationbar iboutlet


【解决方案1】:

我试过了,没问题:

childVC.parentViewController.navigationItem.title = @"abc";

【讨论】:

    【解决方案2】:

    视图控制器中的父级不再工作。看起来唯一的方法是将父级保存在这个子视图控制器的方法中并设置它的标题:

    override func didMove(toParent: UIViewController?)
    

    【讨论】:

      【解决方案3】:

      试试这个。它在几乎相同的情况下对我有用

          self.navigationController.parentViewController.navigationItem.title = @"sdfsdf.";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-06
        相关资源
        最近更新 更多