我最近遇到过这种情况,我想知道为什么这样设计。
如果您的UINavigationController
的孩子的容器视图中包含嵌入式视图控制器,为什么这个孩子的self.navigationController
属性不能设置为什么?
来自Apple Doc的主题:
视图控制器层次结构中最近的祖先,它是导航控制器。 (只读)
@property(nonatomic,readonly,retain)UINavigationController * navigationController 讨论 如果接收器或其祖先之一是导航控制器的子节点,则此属性包含拥有的导航控制器。如果视图控制器未嵌入导航控制器中,则此属性为nil。
对我而言,我认为因为它的父母已经嵌入到导航控制器中,它会将它的链接传递给它的孩子。我错过了什么吗?是不是有充分的理由呢?
答案 0 :(得分:1)
您好我遇到了同样的问题。我通过使用此代码来显示视图控制器来修复它:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
AboutTheAppViewController *loginVC = [storyboard instantiateViewControllerWithIdentifier:@"aboutMenuSegueID"];
[self addChildViewController:loginVC];
[loginVC didMoveToParentViewController:self];
[self.view addSubview:loginVC.view];
然后我将它添加到AboutTheAppViewController(我将要显示的控制器)中:
-(void)willMoveToParentViewController:(UIViewController *)parent
{
NSLog(@"FirstViewController moving to or from parent view controller");
// self.view.backgroundColor=[UIColor blueColor];
}
-(void)didMoveToParentViewController:(UIViewController *)parent
{
NSLog(@"FirstViewController did move to parent view controller");
// self.view.frame = CGRectMake(20, 20, 280, 528);
}
我希望它有所帮助。