2

ナビゲーションスタックにあり、別のビューコントローラー(ビューコントローラー2など)によってプッシュされるビューコントローラー(ビューコントローラー3など)にタブバーのようなビューが必要です。

ボタンの多いView Controller 3にツールバーを追加しました。しかし、ビューの管理と切り替えは難しいようです。

ナビゲーション スタックの途中にタブバー コントローラーを追加するにはどうすればよいですか。私を助けてください。

4

3 に答える 3

1

そこに TabBar を追加することはできません - tabBar は一番下にあるように設計されています。独自のViewControllerを作成し、それをnavigationViewControllerのsubViewとして追加し、切り替えメソッド全体を実装する必要があります。

于 2013-09-10T11:35:16.337 に答える
0

関連する質問で、この設計についていくつかの議論がありました。

私があなたの質問を理解している方法では、それは間違いなく可能です。に埋め込まれているに をプッシュしてUITabBarControllerいます。プログラムで実装したプッシュを除いて、interfacebuilder ですべてを行いました。UIViewControllerUINavigationController

そのため、ViewController.mでボタンにアクションを追加しました。

- (IBAction)searchForPlacesButtonPressed:(id)sender {
    TabBarController *tc = [[self storyboard] instantiateViewControllerWithIdentifier:@"TabBarController"];
    tc.title = @"Orte";
    tc.tabBar.selectedImageTintColor = [UIColor colorWithRed:(28.0f/255.0f) green:(100.0f/255.0f) blue:(52.0f/255.0f) alpha:1.0f];
    UIBarButtonItem * logo = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_xyz"]]];
    tc.navigationItem.rightBarButtonItem = logo;

    Places *d = [[Places alloc] init];
    for (UIViewController *vc in tc.viewControllers) {
        if ([vc isKindOfClass:[MapViewController class]]) {
            ((MapViewController *)vc).dataHandler = d;
            ((MapViewController *)vc).mapViewDelegate = d;
            vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Karte" image:[UIImage imageNamed:@"map"] tag:0];
        }
        else if ([vc isKindOfClass:[TableViewController class]]) {
            ((TableViewController *)vc).dataHandler = d;
            vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Liste" image:[UIImage imageNamed:@"eye"] tag:1];
        }
    }
    [self.navigationController pushViewController:tc animated:YES];
}

下部のタブを使用して、場所を地図上で表示するか、表にリスト表示するかを切り替えることができます。

于 2013-09-14T22:01:25.473 に答える