私はNSTabView
にいくつかのタブ表示項目を持っています。ユーザーが特定のボタンを押すと、タブビューがこれらの項目のいずれかに変わり、WebサイトAPIから返されたものが表示されます。私は、データをフェッチしていることをユーザーに伝えるために、中間のタブ・ビュー項目を作成しようとしましたが、一度フェッチすると表示されます。1つの方法でnstabview項目を2回変更する
[tabView selectTabViewItemAtIndex:0]; // This is the intermediate tab
/*
Fetching
data from
the api
here
*/
[tabView selectTabViewItemAtIndex:1]; // Displaying the data tab
しかし、最初のタブは表示されず、最後のタブは表示されません。データをすばやく取得して表示する時間がなかったのかどうかは分かりましたが、途中でブレークポイントを設定しましたが、まだ変更されていませんでした。終わりに変わってきているようですが、変です。
アイデア?
更新:答えを
おかげで、
[tabView selectTabViewItemAtIndex:0]; // This is the intermediate tab
dispatch_queue_t queue = dispatch_queue_create("com.mycompany.queue", 0);
dispatch_async(queue, ^{
/*
Fetching
data from
the api
here
*/
[tabView selectTabViewItemAtIndex:1]; // Displaying the data tab
});
UIは実行ループ間でのみ更新されるため、中間タブを選択して非同期にフェッチを実行し、フェッチが完了したら次のタブを選択する必要があります。 –