iOS控制器之间切换的自定义方式

ChildViewController *vc = [ChildViewController new];
    
[self addChildViewController:vc];
[self.view addSubview:vc.view];

CGRect rect = vc.view.frame;
rect = CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);
vc.view.frame = rect;

rect = self.view.frame;

// 这里是自定义动画,也可以换成其他方式的
[UIView animateWithDuration:0.35 animations:^{
    vc.view.frame = rect;
}];

缺点:
1、如图,控制器的图层会变成这样


image.png

甚至是这样


iOS控制器之间切换的自定义方式_第1张图片
image.png

而不是官方的两三种控制器图层。

2、控制器页面返回时,除了将控制器的view从父视图去除,而且将本控制器从父控制器中清除。

[self removeFromParentViewController];
    
[self.view removeFromSuperview];

你可能感兴趣的:(iOS控制器之间切换的自定义方式)