2009-06-13 14 views
0

ちょっと、私はここで非常に混乱しています、私はこれを理解しようとしています。私はUIViewController、viewControllerBrowse、2つのTableViewController、指定&タイプで、私は2番目のUIViewController、viewControllerSelectLibraryを呼び出し、いくつかのSOLite操作を行い、最初の2つのTableViewフィードから2つの配列を埋めます。scrollToRowAtIndexPathで非常に奇妙なUITableViewController.tableviewの動作

私はviewControllerBrowseをコールバックするつもりだとき、私はNSThread内で実行します。TRUUUULYが私を困惑何

[appDelegate.viewControllerBrowse.tvcTypes.tableView reloadData]; 
[appDelegate.viewControllerBrowse.tvcTypes.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:YES scrollPosition:UITableViewScrollPositionTop]; 

[appDelegate.viewControllerBrowse.tvcDesignations.tableView reloadData]; 

[appDelegate.viewControllerBrowse.tvcDesignations.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:YES scrollPosition:UITableViewScrollPositionTop]; 

がtvcTypesケースに、そののtableViewは、その最初の行のトップ

に選択し、スクロールしてしまうことです

しかし、それはようだ、tvcDesignationsのために、そののtableViewは、その最初の行が選択得るが、それはTOP

するために選択された最初の行は、それがappDelegate内の基準の問題ではないことを私に伝えているという事実をスクロールしませんただの場合メソッドの半分が作業している/ ?????????????

誰もがこの??????

答えて

1

ちょうど推測ですが、アニメーションにNOを渡すとどうなりますか?残念ながらこの動作は特に見たことがありませんが、アニメーションによっては奇妙なやり取りが発生することがあります。

また、どのView Controllerが表示されていますか?どちらか?

+0

あなたはそれをネイルドしても問題ありませんが、同じViewController(viewControllerBrowse、appDelegateとUINavigationControllerのルートのプロパティとして設定されています)とそのコードの両方が、 NSThread。最初にtvcTypesまたはtvcDesignationsでselectToRowAtIndexPathを呼び出したかどうかは関係ありませんでした。 WEIRD。 あなたの質問に関しては、appDelegate.windowは、viewControllerBrowseを持つUINavigationController(2つのTableviewsがあるところ)をルートとして持っています。そこからviewControllerSelectLibraryにプッシュし、SQLiteの仕事をしてください... –

+0

viewRowAtIndexPathをviewControllerBrowse popToRoot NSThreadに言及したように、以前はすべて動作していました。 –

+1

ああ、私はスレッドの部分を見逃しました。 UIKitはスレッドセーフではないため、スレッド内でUIKitメソッドを呼び出すと、予測できない結果が発生します。 performSelectorOnMainThread:withObject:variants – NilObject