关于动态添加tabbarcontroller的子控制器

本文介绍了如何通过异步缓存接口结果、预先加载固定子控制器、动态调整TabBarController结构,实现实时添加和排序WebView控制器。核心代码展示了在接收到通知时,根据模型事件判断并插入新的WebView视图到正确位置,同时确保整个过程在主线程完成且避免重复添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现的思路如下:

1.先是接口提前请求,结果异步缓存。

2.生成tabbarcontroller的时候,把固定的子控制器提前加载,以通知或者block方法把要添加的子控制器传入。

3.以原有控制器数组为准,遍历排序,找到适当的位置insert进去,然后重置tabbarcontroller整个数组,整个过程要注意异步主线程进行。

4.注意再次刷新接口的时候,只做排序操作,注意不要重复添加。

 

以下附上关键代码:

-(void)insertChildControllerWithModel:(NSNotification *)notification {
    NewFunctionModel * model = (NewFunctionModel *)notification.object;
    if ([self isUrlAddress:model.event]) {
        __block BOOL needAdd = YES;
        for (UINavigationController *vc in self.childViewControllers) {
            if ([vc.topViewController isKindOfClass:[WebViewBaseViewController class]]) {
                needAdd = NO;
            }
        }
        
        if (needAdd == YES) {
            WebViewBaseViewController *webVC = [[WebViewBaseViewController alloc]init];
            webVC.requestUrl = model.event;
            
            UINavigationController* nav = [[UINavigationController all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值