2

TabBar とタブを備えた iPhone アプリがあります。各タブには UIViewControllers がロードされます。特定のタブに必要なのは、タブに関連付けられた UIViewController を変更することです。PresentViewController を呼び出すと、UIViewController が変更されますが、不要な TabBar も非表示になります。

誰が何をする必要があるか説明してもらえますか?

ありがとう

4

1 に答える 1

3

UITabBarController は、そのビュー コントローラーのコレクションを適切な名前のプロパティに保持しますviewControllers。これは実行時に変更できます。アプリにとっておそらく問題ない副作用がありますが、ドキュメントを読んで確認してください。

便利なメソッド (およびその不変配列を変更する方法の図) は次のようになります。

- (void)replaceTabBarViewControllerAtIndex:(NSUInteger)index with:(UIViewController *)newVC {

    NSMutableArray *newVCs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];

    if (index < newVCs.count) {
        newVCs[index] = newVC;
        self.tabBarController.viewControllers = [NSArray arrayWithArray:newVCs];
    }
}

提示する代わりに、新しい VC でこれを呼び出します。

于 2013-09-19T20:27:41.540 に答える