利用addChildViewController组织viewController---类似UITabBarViewController的效果

前奏:项目接近尾声了,现在的水平可以独立完成项目了,但是很多东西还是一知半解,所以下定决心,从今天开始写博客,总结自己所学的东西。

问题:顶部一个segment,切换视图分别是表格,趋势图...等等。如果全部视图放在一个controller内,代码量太大,且不好维护。

所以将切换视图分别定义在各自的viewController中,实现类似UITabBarViewController的效果。

解决办法:定义一个主视图,利addChildViewController来组织内容viewController,同时添加自定义UITabBar,实现内容切换。

具体流程:

1.自定义UITabBar:自定义一个view(添加items,并定义delegate);

2.定义主视图:MainViewController:

1⃣️添加自定义的UITabBar;

2⃣️通过addChildViewController添加包含的viewController;

3⃣️实现委托方法(切换Controller):

[self transitionFromViewController:currentViewController toViewController:homePage duration:0 

options:UIViewAnimationOptionTransitionNone animations:^{

            } completion:^(BOOL finished) {

                if (finished) {

                    currentViewController=homePage;

                }else{

                    currentViewController=oldViewController;

                }

            }];

在OC中添加子ViewController也可以使用类似的步骤,具体如下: 1.创建子ViewController 首先,需要创建一个子ViewController,可以使用以下代码: ``` ChildViewController *childVC = [[ChildViewController alloc] init]; ``` 其中ChildViewController是你要添加的子ViewController类。 2.将子ViewController添加为子视图控制器 同样,将子ViewController添加为父ViewController的子视图控制器,可以使用以下代码: ``` [self addChildViewController:childVC]; ``` 3.将子ViewController的视图添加到父ViewController中 现在,可以将子ViewController的视图添加到父ViewController中,可以使用以下代码: ``` [self.view addSubview:childVC.view]; ``` 这里,我们将子ViewController的视图添加到父ViewController的view中。 4.完成添加 最后,需要调用以下代码来完成添加: ``` [childVC didMoveToParentViewController:self]; ``` 这里,我们调用了childVC的didMoveToParentViewController:方法,通知子ViewController已经添加到了父ViewController中。 完整的代码如下所示: ``` ChildViewController *childVC = [[ChildViewController alloc] init]; [self addChildViewController:childVC]; [self.view addSubview:childVC.view]; [childVC didMoveToParentViewController:self]; ``` 需要注意的是,在移除子ViewController时,需要按照相反的顺序执行上述步骤,并在最后调用以下方法来从父视图控制器中删除子视图控制器: ``` [childVC removeFromParentViewController]; ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值