iOS Developer

添加子控制器

2016-11-09  本文已影响67人  LSRain

在一些应用中,有这样的场景:
在控制器A中需要处理很多逻辑,那么可以将另一个控制器B来作为A的子控制器,帮助A分担一些逻辑处理

起到降低耦合度的作用

childVC.png

如:这里定义了3个控制器WBSportMainViewControllerWBSportingViewControllerWBMapViewController,需要将WBMapViewController作为WBSportingViewController的子控制器

WBSportMainViewController主控制器,负责业务分发

- (IBAction)sportBtnAction:(UIButton *)sender {
    
    WBSportType type = sender.tag;
    
    WBSportingViewController *sportVC = [WBSportingViewController new];
    sportVC.sportType = type;
    
    [self presentViewController:sportVC animated:YES completion:nil];
}

WBSportingViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor redColor];
    [self setupMapViewController];
}

- (void)setupMapViewController{
    WBMapViewController *mapVC = [WBMapViewController new];
    [self addChildViewController:mapVC];
    [self.view addSubview: mapVC.view];
    mapVC.view.frame = self.view.bounds;
    
    mapVC.sportTracking = [[WBSportTracking alloc]initWithType:_sportType];
    [mapVC didMoveToParentViewController:self];
}

注意在添加自控制的时候,不要忘记将子�控制器的视图也添加到父控制器中,否则��子控制的view就显示不出来了

WBMapViewController

  self.view.backgroundColor = [UIColor yellowColor];

这样便将WBMapViewController设置为了WBSportingViewController的子控制器了

vc.png
上一篇下一篇

猜你喜欢

热点阅读