ナビゲーションスタックにあり、別のビューコントローラー(ビューコントローラー2など)によってプッシュされるビューコントローラー(ビューコントローラー3など)にタブバーのようなビューが必要です。
ボタンの多いView Controller 3にツールバーを追加しました。しかし、ビューの管理と切り替えは難しいようです。
ナビゲーション スタックの途中にタブバー コントローラーを追加するにはどうすればよいですか。私を助けてください。
ナビゲーションスタックにあり、別のビューコントローラー(ビューコントローラー2など)によってプッシュされるビューコントローラー(ビューコントローラー3など)にタブバーのようなビューが必要です。
ボタンの多いView Controller 3にツールバーを追加しました。しかし、ビューの管理と切り替えは難しいようです。
ナビゲーション スタックの途中にタブバー コントローラーを追加するにはどうすればよいですか。私を助けてください。
そこに TabBar を追加することはできません - tabBar は一番下にあるように設計されています。独自のViewControllerを作成し、それをnavigationViewControllerのsubViewとして追加し、切り替えメソッド全体を実装する必要があります。
関連する質問で、この設計についていくつかの議論がありました。
私があなたの質問を理解している方法では、それは間違いなく可能です。に埋め込まれているに をプッシュしてUITabBarController
います。プログラムで実装したプッシュを除いて、interfacebuilder ですべてを行いました。UIViewController
UINavigationController
そのため、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];
}
下部のタブを使用して、場所を地図上で表示するか、表にリスト表示するかを切り替えることができます。