viewWillLayoutSubviews viewDidLayoutSubviews

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;
}

你可能感兴趣的:(IOS)