アニメーションを使用してナビゲーションバーを非表示にしてから、UIViewControllerを消すようにします。viewDidDisAppearでアニメーションが終了するのを待つ方法は?
-(void) viewWillDisappear:(BOOL) animated {
[UIView transitionWithView:self.view
duration:UINavigationControllerHideShowBarDuration
options:UIViewAnimationCurveEaseOut
animations:^{
[self.navigationController setNavigationBarHidden:YES];
}
completion:^(BOOL finished){
NSLog(@"animation finished");
}];
[super viewWillDisappear:animated];
}
問題はviewWillDisappearを実行し、ちょうど戻って全体のビューは、アニメーションが終了する前に離れて行くし続けることである。したがって、私は次のように実装しています。アニメーションが完了する前にメソッドが戻るのを止めるにはどうしたらいいですか?
アニメーションを作成することはできません。たぶんあなたは 'setNavigationBarHidden:animated:'メソッドを探していますか? –
私は 'setNavigationBarHidden:animated:'を使いたくはありません。なぜなら、iOS 4(左にスライドする)とiOS 5(上にスライドする)で異なった動きをするからです。なぜなら、 'setNavigationBarHidden:animated:'を 'viewWillDisappear'ブロック内に置くことは、アニメーションが終了する前にメソッドが戻ることを意味するからです。私はおそらく2つのスレッドがここに必要と思いますか? –