iOS popViewController 失效
2017-05-16 本文已影响311人
480a52903ce5
iOS7在viewDidLoad中,请求网络数据,(网络请求开辟线程),在请求失败的时候,在主线程中 popViewController。但是怎么也pop不出去。
原因是,网络请求完成的时候,竟然还没有调用-(void) viewDidAppear.也就是界面没有完全加载,导致我直接跳转界面会失败。
解决办法:不要再viewDidLoad中popViewController,在ios8以上勉强可以执行,但是ios7这样执行,界面会卡死,系统会crash。因此尽量不要再viewDidLoad中pop控制器。
我的解决办法是,添加一个标记,在网络请求失败的时候改变标记,ViewDidApper中执行该方法。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if(!isNetWorkError) {
[self.navigationController popViewControllerAnimated:YES];
}
}