1

タブ バー コントローラーに 2 つのビューを追加しようとしています。このような..

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIViewController *con_view_ctrlr = [[ofi_vc_blocked_list alloc] initWithNibName:@"ofi_vc_blocked_list" bundle:nil];   // This is adding fine.
    UINavigationController *con_view_navig = [[UINavigationController alloc] initWithRootViewController:con_view_ctrlr];

    UIViewController *ab = [[ofi_vc_address_book alloc] initWithNibName:@"ofi_vc_address_book" bundle:nil];
    UINavigationController *ab_navig = [[UINavigationController alloc] initWithRootViewController:ab];

    ab_tab_bar = [[UITabBarController alloc] init];
    ab_tab_bar.viewControllers = [NSArray arrayWithObjects:ab_navig, con_view_navig, nil];
}

タブバーはまだ表示していません。タブバーを最初に表示したくないからです。

ofi_vc_address_book ビュー* (タブ バーの一部として追加されます) *を別のビューの一部として最初に表示したかったのです。特定の場合にのみそのタブバーが必要です。私の場合は、ModalViewController ab_navig(ofi_vc_address_book) を表示して、以前に追加した他のビューと共にタブ バーを表示したいと考えています。しかし、不整合階層でクラッシュするため、これを達成できませんでした。タブバーと他のビューの子の両方で同じビューを使用するにはどうすればよいですか? 出来ますか?

4

3 に答える 3

0

タブ バー コントローラーはルート ビュー コントローラーでなければなりません。タブ バー ビュー コントローラーを別の方法で使用する方法はありません。タブバーが不要なView Controllerでは、タブバーを非表示にできます。しかし、はるかに良い方法は、アプリのアーキテクチャを確認することです。あなたが望むものを実装するための別のより良い方法を見つけることができると確信しています。

于 2012-08-10T08:01:24.843 に答える
0

同じビューを複数のビュー コントローラーに関連付けることはできません。これを行う方法は、IB でビューを複製して 2 番目のビュー コントローラーに接続するか、コードでビューの別のインスタンスを作成してビュー コントローラーに設定することです。

于 2012-08-10T05:40:08.883 に答える
0

ナビゲーション ビューでタブ バー ビューを表示する場合は、ab_navig の代わりに presentModalViewController ab_tab_bar を使用します。

于 2012-08-10T05:45:33.590 に答える