Ios 如何将子视图控制器创建的UIBarButtonim设置为父视图控制器';你的导航控制器是什么?
我创建了一个自定义容器视图控制器。它有两个子视图控制器。他们将uiBarButtonim的实例设置为Ios 如何将子视图控制器创建的UIBarButtonim设置为父视图控制器';你的导航控制器是什么?,ios,uinavigationcontroller,Ios,Uinavigationcontroller,我创建了一个自定义容器视图控制器。它有两个子视图控制器。他们将uiBarButtonim的实例设置为self.navigationItem.RightBarButtonim,以显示导航栏上的按钮。但是,没有显示任何内容 为什么导航栏上没有显示子视图控制器生成的UIBarButtonItem实例 以下代码放置在容器视图控制器的viewDidLoad中 [self addChildViewController:childVC]; [self.view addSubview:childVC.view]
self.navigationItem.RightBarButtonim
,以显示导航栏上的按钮。但是,没有显示任何内容
为什么导航栏上没有显示子视图控制器生成的UIBarButtonItem实例
以下代码放置在容器视图控制器的viewDidLoad
中
[self addChildViewController:childVC];
[self.view addSubview:childVC.view];
[childVC didMoveToParentViewController:self];
如果父控制器嵌入在导航控制器中,则该父控制器将具有navigationItem,而不是子控制器。因此,子项中的self.navigationItem将为零。您需要引用父级
self.parentViewController.navigationItem.rightBarButtonItem = ...
导航控制器只查看其直接子视图控制器的导航项,根据您的描述,它听起来像容器。您需要设计一些机制,将对容器子项的navigationItem的更改转发到容器的navigationItem。找到答案了吗?我也面临着类似的问题。是的,导航项不是零。这里有相同的问题:(到目前为止还没有解决方案?否则,您提到,我发现子视图控制器中的self.navigationItem不是nil。而且,我不想限制视图控制器应该是任何容器的子级。子视图控制器中的self.navigationItem不是nil。它不是nil,因为正如文档所提到的,第一次访问属性时,将创建UINavigationItem对象。因此,如果不使用导航控制器来显示视图控制器,则不应访问此属性。虽然创建了此属性,但它未连接到导航栏。