0

各タブがユーザーをUITableViewControllerに誘導するタブバーアプリケーションがあります。NSObject を拡張する MyTimer という別のオブジェクトを作成しました。MyTimer に関数[MyTimer refreshTables]を毎分実行させたい。refreshTables 関数の内容は、次のようになります。

-(void) refreshTables:(NSTimer *)timer
{
[tabbar.firstuitableviewcontroller.tableView reloadData];
[tabbar.seconduitableviewcontroller.tableView reloadData];
[tabbar.thirduitableviewcontroller.tableView reloadData];
}

問題は、ハンドル tabbar.firstuitableviewcontroller、tabbar.seconduitableviewcontoller などを取得するために使用する必要がある変数名の正しい構文またはチェーンがわからないことです... appdelegate オブジェクトからそれらのハンドルを取得できますか? または他の方法ですか?

ありがとう

4

1 に答える 1

0

私の appdelegate の rootviewcontroller は tabbarcontroller でした。したがって、これは有効でした:

UITabBarController * uitbc = appDelegate.window.rootViewController;

次に、各タブが指すナビゲーションコントローラーを次の方法で取得できます。

// 代わりに別のタブが必要な場合は、ゼロを別のタブのインデックスに変更します UINavigationController * uinc = [uitbc.viewControllers objectAtIndex:0];

于 2012-06-06T05:25:46.853 に答える