1.whose view is not in the window hierarchy[haɪərɑrki]!
意思是:view不在window的层次结构中。
就是在当前的view还没有渲染到window上就加在下一个控制器或其他。
最直接的解决方法就是在controller的”viewDidAppear”里面去调用present。这样可以确保view hierarchy的层次结构不乱。
如果控制器加在时没有走”viewDidAppear”方法,则不能push或present到新的控制器。
1.transitionFromView:toView:duration:options:completion:
参数
FromView:动画起始view,默认添加到父view,动画后,从父view删除
toView:动画结束view,默认动画后,添加的父view
duration:动画时间
options:动画参数
completion:动画完成后的block
注意:当起始view和结束view是控制器的view时,要注意控制器是否已经被销毁,如果控制器被销毁,则不能在控制器当中做一些域控制器相关的动作。
[UIView transitionFromView:self.blueView toView:self.redView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
}];
2.transitionFromViewController:toViewController:duration:options:animations:completion:
在一个控制器中添加几个子控制器
(
self.redVC = [[REDViewController alloc] init];
[self addChildViewController:self.redVC];
self.blueVC = [[BlueViewController alloc] init];
[self addChildViewController:self.blueVC];
[self.view addSubview:self.redVC.view];
)
然后再几个子控制器之间进行切换
[self transitionFromViewController:self.redVC toViewController:self.blueVC duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
} completion:^(BOOL finished) {
}];
2.五秒心跳请求一次接口压力太大