我正在开发一个iPhone应用程序,这是基于页面的。现在,只需点击一个按钮,即可翻到随机页面。在翻页时,首先调用新页面的viewDidAppear,&然后调用当前页面的viewDidDisappear(这是预期的行为)。新页面很快出现(我在viewDidAppear中放置了一个[NSDate日期]),但当前页面的'viewDidDisappear'在新页面的viewDidAppear之后的平均30到40秒之后被调用(&没有其他方法被调用;我把NSLog放在每个方法中,看看是否有其他东西被调用)!所以它是这样的: 1.新的页面的viewDidAppear被称为&结束(我检查这与打印开始&结束时间的viewDidAppear)几乎立即 2.什么都发生了近30至40秒('后' viewDidAppear of the new page'ends') 3.然后,调用当前页面的viewDidDisappear! (&我没有处理viewDidDisappear/viewWillDisappear;我只是打印当前时间)UIPageViewController - 翻到随机页面需要很多时间
为什么在这之间有这么长的停顿?
这是我的相关代码段: (环境:的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]);
}
使用工具和时间事件探查器查看40秒内执行的操作。 – Jesper
+1谢谢!让我检查一下;我应该承认我没有使用这些工具! – Jean