ページベースのiPhoneアプリを開発しています。今、ボタンをクリックすると、ランダムなページにめくっています。反転すると、新しいページのviewDidAppearが最初に呼び出され、次に現在のページのviewDidDisappearが呼び出されます(これは予想される動作です)。新しいページはすぐに表示されますが(viewDidAppearに[NSDate date]の印刷を入れました)、現在のページの「viewDidDisappear」は、新しいページのviewDidAppearの平均30〜40秒後に呼び出されます(&間に他のメソッドは呼び出されません。各メソッドにNSLogを配置して、他のメソッドが呼び出されているかどうかを確認します)!つまり、次のようになります。1.新しいページのviewDidAppearが呼び出されて終了します(viewDidAppearの開始時刻と終了時刻を印刷してこれを確認しました)。2。ほぼ30〜40秒間(「後」)何も起こりません。新しいページのviewDidAppear'ends')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]);
}