4

私はUITabBarController4つの異なるを含むものを持っていUIViewControllersます。

最初のタブには、UINavigationViewControllerその子を含むがありますUIViewController。タブバーをタップせずに、2番目のタブにユーザーを誘導したいと思います。このために私は試しました:

self.navigationController.tabBarController.selectedIndex = 1;

しかし、それは機能していません。

私は初心者です。間違いは無視してください。

ありがとうございました。

4

7 に答える 7

10

デリゲートを設定する場合これを試してください:

self.selectedIndex = 1;

あなたはtabBarControllerです:)

于 2016-12-10T17:18:49.037 に答える
6

タブを変更する前に、次の手順を実行してください。

UITabBarController *tab = self.tabBarController;

if (tab) {
   NSLog(@"I have a tab bar");
   [self.tabBarController setSelectedIndex: 1];
}
else {
   NSLog(@"I don't have one");
}
于 2012-05-09T20:31:31.550 に答える
2

タブスイッチコードをviewDidLoadに移動してみてください

これがxcode4の組み込みのタブ付きアプリケーションテンプレートプロジェクトで機能することを確認しました

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tabBarController.selectedIndex = 1;
}

また、AppDelegateクラスを見て、これに沿った何かを探します。

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;

これらの行がどこにも表示されない場合は、コード内の他の場所でUITabBarViewControllerが初期化されている場所を見つけて、代わりにそのオブジェクトポインターを使用する必要があります。

于 2012-05-10T11:11:29.970 に答える
2

を呼び出すにはtabbarcontroller.selectedindex、navigationControllerのプッシュを使用しない場合はナビゲーションコントローラーからtabbarcontrollerを見つける必要があります。navigationControllerのtopViewControllerプロパティを使用して、tabBarControllerのインスタンスを取得し、UITabBarControllerとselectedIndexに割り当てます。これは正常に機能します。

于 2012-05-10T11:53:44.910 に答える
1

ちょうど試して

self.tabBarController.selectedIndex = 1
于 2012-05-09T20:26:47.997 に答える
0

viewDidAppearにfollowセクションを配置する必要があります。

    - (void)viewDidAppear:(BOOL)animated
{
NSArray *ary = [self.tabBarController viewControllers];
    UIViewController *vc = ary[3];
    [self.tabBarController setSelectedIndex:3];
    [self.tabBarController setSelectedViewController:vc];
}
于 2014-08-18T09:20:59.840 に答える
0

新しいコントローラー(現在画面に表示されているものとは異なる)を提示する場合は、関数の完了ブロックにインデックスを設定して、ビューコントローラーを提示する必要があります。表示する前に設定すると、動作しない場合があります。

私の場合、navコントローラー内にタブコントローラーを埋め込みました。新しいnavコントローラーnewNavContollerを提示し、提示されたら、タブコントローラーでインデックスを設定しますtvc

currentViewController?.presentViewController(newNavController, animated: true, completion: {tvc.selectedIndex = selectedIndex})
于 2016-01-24T04:55:28.863 に答える