父子控制器的重要性(2018-06-03)

2018-06-03  本文已影响0人  小的小碰撞

控制器父子关系建立的原则

[a.view addSubView: b.view];
[a addChildViewController: b];
[a.view addSubView :OtherView];
[OtherView addSubView: b.view];
[a addChildViewController: b];

获得所有的子控制器

@property(nonatomic,readonly) NSArray *childViewControllers;

添加一个子控制器

//OneViewController成为了self的子控制器
//self成为了OneViewController的父控制器
[self addChildViewController:[[OneViewController alloc] init]];
// 通过addChildViewController添加的控制器都会存在于childViewControllers数组中

获得父控制器

@property(nonatomic,readonly) UIViewController *parentViewController;

将一个控制器从它的父控制器中移除

// 控制器a从它的父控制器中移除
[a removeFromParentViewController ];

// 当一个控制器从父控制器中移除时。会自动调用控制器的didMoveToParentViewController:方法,并且参数是nil
    [self.childViewControllers[0] removeFromParentViewController];

didMoveToParentViewController

- (void)willMoveToParentViewController:(UIViewController *)parent

注意点:

过渡动画

 CATransition *animation = [CATransition animation];
    animation.type = @"cube";
    animation.subtype = index > oldIndex ? kCATransitionFromRight : kCATransitionFromLeft;
    animation.duration = 0.5;
    [self.contentView.layer addAnimation:animation forKey:nil];

autoresizingMask

// self.view == 600x600 --> 375x667
// one.view == 100x100 --> 缩小x增大
a.view.autoresizingMask = UIViewAutoresizingNone;
上一篇 下一篇

猜你喜欢

热点阅读