にpushViewController:animated:
でUITableViewController
をプッシュしています。私はselectRowAtIndexPath
を使用して、指定された行にスクロールして強調表示することができるように、アニメーションが終了したときに通知を受けたいと思います。
明示的に呼び出さなかったアニメーションのデリゲートを設定するにはどうすればよいですか?あなたはナビゲーションコントローラのスタックにプッシュする前に(のtableViewプロパティを介した)方法:アニメーション::scrollPositiontableViewControllerがnavスタックにプッシュのアニメートを完了したときに通知を受ける方法
0
A
答えて
1
プッシュアニメーションのデリゲートを設定する方法はわかりません。
サブクラスUITableViewController
:ここでは簡単な回避策です。少し遅れてviewDidAppear:
を無効にして、「ポストアニメーション」メソッドを呼び出します。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector:@selector(scrollToAndHighlightCurrentRow) withObject:nil afterDelay:0.4];
}
1
ああ素晴らしいです。だから、 'viewDidAppear'はプッシュアニメーションが完了した後にのみ呼び出されますか?パーフェクト、それはそれをしました。ありがとう。 – Andrew
'viewDidAppear:'メソッドは、隠しビューの障害物を取り除いたときにも呼び出されます。たとえば、テーブルビューの上に別のビューをプッシュすると、そのビューをポップすると、テーブルビューコントローラの 'viewDidAppear:'メソッドが再び呼び出されます。 –
フォローアップ質問のためにhttp://stackoverflow.com/questions/4356256/how-to-get-notified-when-scrolltorowatindexpath-finishes-animatingを参照してください。 – Andrew