码迷,mamicode.com
首页 > 移动开发 > 详细

iOS-控制器的管理

时间:2015-07-20 18:55:34      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

如果2个控制器的view是?父?子关系,那么这2个控制器也应该为?父?子关系
?[vc01.view addSubview: vc02.view];
?[vc01 addChildViewController: vc02];
?// 会将vc02添加到vc01.childViewControllers数组中
// vc01.childViewControllers --> @[vc02]

1> 通过addChildViewController?方法,将有可能显?示的?小控制器变为?大控制器的?子控制器
?[self addChildViewController:[[HMOneViewController alloc] init]];
?[self addChildViewController:[[HMTwoViewController alloc] init]];
?[self addChildViewController:[[HMThreeViewController alloc] init]];
?2> 在?大控制器中声明?一个属性,?用来记录当前正在显?示的?子控制器
?@property (nonatomic, weak) UIViewController *showingChildVc;
?3> 需要提供?一个?方法,来切换?子控制器
?// index : 即将需要显?示的?子控制器的索引
?- (void)switchVc:(int)index
?{
    ?// 1.移除当前正在显?示的?子控制器view
?    [self.showingChildVc.view removeFromSuperview];
    ?// 2.添加index位置对应控制器的view
    ?UIViewController *newVc = self.childViewControllers[index];
    ?newVc.view.frame = CGRectMake(0, 44,     self.view.frame.size.width,
    ?self.view.frame.size.height - 44);
    ?[self.view addSubview:newVc.view];
    ?self.showingChildVc = newVc;
?}


不建立父子控制其可能的后果
内部的?小控制器可能会发?生以下情况:

1> ?法察觉到?较重大的系统事件发?生了(比如屏幕旋转事件)
?2> 可能会导致self.navigationController == nil、self.tabBarController == nil
?3> 可能会导致[self dismissViewControllerAnimated:YES completion:nil]?效(无法关闭控制器)    

 

iOS-控制器的管理

标签:

原文地址:http://www.cnblogs.com/DarbyCJ/p/4661929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!