正在开发一款基于页面的iPhone应用程序。现在,点击一个按钮,我会翻到随机页面。在翻转时,首先调用新页面的viewDidAppear,&然后调用当前页面的viewDidDisappear(这是预期的行为)。新页面快速出现(我在viewDidAppear中打印了[NSDate date]),但在新页面的viewDidAppear之后平均30到40秒之后调用当前页面的'viewDidDisappear'(&) ;之间没有调用其他方法;我在每个方法中放置NSLog以查看是否有其他方法被调用)!所以它是这样的: 1.新页面的viewDidAppear被称为&几乎立即结束(我通过打印viewDidAppear的开始和结束时间来检查) 2.几乎没有任何事情发生了将近30到40秒('新页面的'viewDidAppear'结束后'') 3.然后,调用当前页面的viewDidDisappear! (&我在viewDidDisappear / viewWillDisappear中没有处理;我只是打印当前时间)
为什么中间有这么长的停顿?
这是我的相关代码段: (环境:XCode 4.3,iOS 5.0,用iPad测试)
转向随机页面的代码:
NSMutableArray *array = [[NSMutableArray alloc] init];
ViewController_EachPage *page = [self getPageAtIndex:randomPageNum];
if ((page != nil) && (page != NULL)) {
[array insertObject:page atIndex:0];
}
[self.viewCtrlrPages
setViewControllers:[NSArray arrayWithArray:array]
direction:UIPageViewControllerNavigationDirectionForward
animated:YES completion:nil];
viewDidAppear方法
....
self.timer = [NSTimer scheduledTimerWithTimeInterval:10.0f
target:self selector:@selector(hideThem)
userInfo:nil repeats:NO];
[((com_AppDelegate *) [[UIApplication sharedApplication] delegate]).viewCtrlrCoverPage.viewCtrlrPages initializePage];
NSLog(@"EachPage.viewDidAppear at %@", [NSDate date]);
....
viewDidDisappear方法
-(void) viewWillDisappear:(BOOL)animated {
NSLog(@"EachPage.viewWillDisappear");
[self.timer invalidate];
}
-(void) viewDidDisappear:(BOOL)animated {
NSLog(@"EachPage.viewDidDisappear at %@", [NSDate date]);
}
答案 0 :(得分:0)
你未能在viewWillAppear
/ viewWillDisappear
等错误的电话中打电话。不好主意。