似たような質問をいくつか見たことがありますが、現在抱えている質問に十分近いものは見つかりませんでした。
これが、ストーリーボードにあるものです。それぞれが 1 つの特定のビュー (タブの 1 つ) にリンクされているはずの多数のボタンを含むビューがあります。これで、ボタンのいずれかがクリックされている間、最初のタブにあるタブビューランディングにのみプッシュできました。ボタンから特定のタブに実際にジャンプする方法を知りたいです。
私の拙い英語をご容赦ください。よろしくお願いします。
似たような質問をいくつか見たことがありますが、現在抱えている質問に十分近いものは見つかりませんでした。
これが、ストーリーボードにあるものです。それぞれが 1 つの特定のビュー (タブの 1 つ) にリンクされているはずの多数のボタンを含むビューがあります。これで、ボタンのいずれかがクリックされている間、最初のタブにあるタブビューランディングにのみプッシュできました。ボタンから特定のタブに実際にジャンプする方法を知りたいです。
私の拙い英語をご容赦ください。よろしくお願いします。
ボタンにタグ 100、101、102、103、および 104 を付けます。
最初のシーンから TabBar シーンへのセグエの識別子を showTabBar に設定します。
各ボタンを同じ IBAction メソッドに接続します。コードを記述する必要があります。
- (IBAction)onButtonTap:(id)senderButton
{
[self performSegueWithIdentifier:@"showTabBar" sender:senderButton];
}
また、 prepareForSegue:sender: をオーバーライドします。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
UITabBarController *tabBarController = segue.destinationViewController;
tabBarController.selectedIndex = ((UIButton *) sender).tag - 100;
}
TabBarController のストーリーボード ID を設定します。画像参照
tabBar のオブジェクトにアクセスし、必要なビュー コントローラーを選択します。
UITabBarController *tabBar=[MainStoryboard instantiateViewControllerWithIdentifier:@"MyTabBarController"];
tabBar.selectedIndex = 2;
TabBarController のストーリーボード ID を設定します。@Mayank Jain が提案したように、最初にタグをボタンに割り当て、すべてのボタンに共通の以下のメソッドを実装します。
- (IBAction)buttonTaped:(UIButton *)sender
{
MainTabBarViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTabBarView"];
if (sender.tag == 0)
vc.selectedIndex = 0;
else if (sender.tag == 1)
vc.selectedIndex = 1;
else if (sender.tag == 2)
vc.selectedIndex = 2;
else if (sender.tag == 3)
vc.selectedIndex = 3;
else
vc.selectedIndex = 4;
}