iOS关于ScrollView添加多个Viewcontroller.view的问题

好吧,先简单的说一下是个啥情况。
没有什么比图更直接了


iOS关于ScrollView添加多个Viewcontroller.view的问题_第1张图片
这个就是一个demo演示

大家看到图就明白了,在rootVC中是存在Navigationcontroller的,然后在VC1-3中并没有,但是一开始楼主不知道啊。

然后楼主就:

  • VC1-3全部继承rootVC,楼主想着这样子是不是就差不多了,我是你的子类,你有的我都应该有,恩,没错。

事实就是:哎哟喂,脸好疼。

发现并不能行。

方案二开始了

  • 我自己包装一个还不行么!
    于是乎有了下面的代码
  UIStoryboard *storyBoard=[UIStoryboard storyboardWithName:@"XXXX" bundle:nil];
    self.VC2 = [storyBoard instantiateViewControllerWithIdentifier:@"XXX"];
    PLNavigationViewController * NAV2 = [[PLNavigationViewController alloc]initWithRootViewController:self.VC2];
    NSLog(@"singVC2 - %@",self.VC2.navigationController);
    
    self.VC1 = [[WatchViewController alloc]init];
    UINavigationController * NAV1 = [[UINavigationController alloc]initWithRootViewController:self.VC1];
    NSLog(@"wathcVC - %@",self.VC1.navigationController);
    
    self.VC3= [[ListenViewController alloc]init];
    PLNavigationViewController * NAV3 = [[PLNavigationViewController alloc]initWithRootViewController:VC3];
    NSLog(@"listenVC - %@",self.VC3.navigationController);
  • 果然代码还是疼我的,输出之后都是存在navigationcontroller的,这下子我就放心了。然后一个方法全部给加到scrollview中。

  • 啦啦啦啦,测试进行中……

哎呀我去,什么鬼,怎么又都是null,不是说好疼我的么。

行,你牛逼。

楼主就在进行排查中……

发现一个问题:在还没有加入到scrollview中之前,数组中的每个viewcontroller都是存在navigationcontroller的。在把每个viewcontroller的view添加到scrollview中之后,问题就来了!!!

  • 添加进去之后,全都变成了null

这下楼主就懵逼了

  • 手动脑补懵逼...
    为什么加入进去就变成空了
让我好好地哭一会儿....那人哭吧哭吧不是罪......

好吧,这个问题我现在也还没有搞懂。。。。

最后,在网上苦苦寻觅N久之后,终于找到一个解决方案。要是有大神无意中看到我的碎碎念,有更好的解决方案还望告知啊。。。小弟感激不尽,以身相许~~~那就免了

把他们作为子viewcontroller加入到当前的viewcontroller中,也就是rootVC
    [self addChildViewController:self.VC1];
    [self addChildViewController:self.VC2];
    [self addChildViewController:self.VC3];
//这样子加完后你就会发现,卧槽 VC3怎么在最前面,不行
//你得给我滚开
    [self fitFrameForChildViewController:self];
//
这个就是那个方法啦
- (void)fitFrameForChildViewController:(UIViewController *)chileViewController{
    CGRect frame = self.view.frame;
    frame.origin.y = 0;
    chileViewController.view.frame = frame;
}

然后你就会发现你在root上面的写的界面没有问题,也不会出现遮挡,而那三个VC也可以使用push

  • 再也不用担心代码不爱你了………… 我觉得这个很重要,加粗 - -!

  • 时间比较仓促,也没怎么整理!!!!将就将就吧。

  • 有时间考虑写一个demo = 。=

你可能感兴趣的:(iOS关于ScrollView添加多个Viewcontroller.view的问题)