ParentViewController中添加多个SubViewController的View

在storyboard中创建一个ParentViewController,创建多个SubViewController。

我在子控制器上添加的是tableView,然后在父控制器中普通的添加子控制器的View,发现tableView的代理已不执行,这很可能由于复杂的添加使tableView已经释放。

1.在父控制器创建两个子控制器的变量;

@property (nonatomic, strong) HouseholdsViewController *householdsViewController;
@property (nonatomic, strong) BusinessViewController *businessViewController;

2.重写两个子控制器的getter方法,storyboard的标识是在storyboard里关联自控制设置的标识;

- (HouseholdsViewController *)householdsViewController{
    if(!_householdsViewController){
       _householdsViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HouseholdsViewController"];
    }
    return _householdsViewController;
}
- (BusinessViewController *)businessViewController{
    if(!_businessViewController){
        _businessViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"BusinessViewController"];
    }
    return _businessViewController;
}

3.点击添加自控制器View的方法

- (IBAction)SegmentedControlValueChanged:(UISegmentedControl *)sender {
    
    switch (sender.selectedSegmentIndex) {
        case 0:
        {
            [self addChildViewController:self.householdsViewController];
            self.householdsViewController.view.frame = CGRectMake(0, 64, kMainScreenWidth, kMainScreenHeight-64);
            [self.view addSubview:self.householdsViewController.view];
            [self.householdsViewController didMoveToParentViewController:self];
            
        }
            break;
        case 1:
        {
            [self addChildViewController:self.businessViewController];
            self.businessViewController.view.frame = CGRectMake(0, 64, kMainScreenWidth, kMainScreenHeight-64);
            [self.view addSubview:self.businessViewController.view];
            [self.businessViewController didMoveToParentViewController:self];
        }
            break;
            
        default:
            break;
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值