iOS 5以后,在controller显示的时候,增加了两个系统回调方法:
- (void)viewWillLayoutSubviews;
- (void)viewDidLayoutSubviews;
当遇到界面Controller.view的frame异常时,可以利viewWillLayoutSubviews方法做做文章。
例如下面:
- (void)viewWillLayoutSubviews {
//iOS 8和9上有系统bug:跳第三方应用,比如QQ登陆后再返回,self.view的底部会缺一块儿
//因此需要在这个方法里重置navigationController.view的frame,这样才会解决问题
//经验证,此写法对iOS 6和7系统,没有影响
self.navigationController.view.frame = [UIScreen mainScreen].bounds;
}
- (void)viewWillLayoutSubviews;
- (void)viewDidLayoutSubviews;
当遇到界面Controller.view的frame异常时,可以利viewWillLayoutSubviews方法做做文章。
例如下面:
- (void)viewWillLayoutSubviews {
//iOS 8和9上有系统bug:跳第三方应用,比如QQ登陆后再返回,self.view的底部会缺一块儿
//因此需要在这个方法里重置navigationController.view的frame,这样才会解决问题
//经验证,此写法对iOS 6和7系统,没有影响
self.navigationController.view.frame = [UIScreen mainScreen].bounds;
}