2010-12-04 11 views
0

pushViewController:animated:UITableViewControllerをプッシュしています。私はselectRowAtIndexPathを使用して、指定された行にスクロールして強調表示することができるように、アニメーションが終了したときに通知を受けたいと思います。
明示的に呼び出さなかったアニメーションのデリゲートを設定するにはどうすればよいですか?あなたはナビゲーションコントローラのスタックにプッシュする前に(のtableViewプロパティを介した)方法:アニメーション::scrollPositiontableViewControllerがnavスタックにプッシュのアニメートを完了したときに通知を受ける方法

答えて

1

プッシュアニメーションのデリゲートを設定する方法はわかりません。

サブクラスUITableViewController:ここでは簡単な回避策です。少し遅れてviewDidAppear:を無効にして、「ポストアニメーション」メソッドを呼び出します。

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self performSelector:@selector(scrollToAndHighlightCurrentRow) withObject:nil afterDelay:0.4]; 
}  
+0

ああ素晴らしいです。だから、 'viewDidAppear'はプッシュアニメーションが完了した後にのみ呼び出されますか?パーフェクト、それはそれをしました。ありがとう。 – Andrew

+1

'viewDidAppear:'メソッドは、隠しビューの障害物を取り除いたときにも呼び出されます。たとえば、テーブルビューの上に別のビューをプッシュすると、そのビューをポップすると、テーブルビューコントローラの 'viewDidAppear:'メソッドが再び呼び出されます。 –

+0

フォローアップ質問のためにhttp://stackoverflow.com/questions/4356256/how-to-get-notified-when-scrolltorowatindexpath-finishes-animatingを参照してください。 – Andrew

1

は、あなたは、単にselectRowAtIndexPathを呼び出して試してみましたか?

+0

はい。それは私が知っていることですが、スクロールアニメーションは同時にまたはプッシュアニメーションの前に終了します。私は、プッシュアニメーションが終了したら、スクロール(および強調表示)アニメーションを開始するだけで、ユーザーが特定の行にスクロールされていることを知りたがっています。 – Andrew

+0

私は今何をしているのかを意味します。 – Andrew

関連する問題