1

すべてのビューを処理する tabBar を持つアプリケーションがあります。最初のビューには、ログイン プロセスがあります。そのプロセスが終了したら、ユーザーにそれぞれの tabBar ボタンをクリックさせずに、2 番目の tabBar ビューに自動的に移動したいと考えています。

今まで私が持っていたのは、これでボタンを強調表示することだけです:

myTabBar.selectedItem = [myTabBar.items objectAtIndex:1];

しかし、そのボタンに関連する2番目のビューを自動的に前面に表示する方法がわかりません。これまでは、ボタンが点灯 (選択) されたらユーザーがボタンを押す必要がありました。

これを行う方法について何か考えはありますか?出来ますか?それは大歓迎です。ありがとう。

4

3 に答える 3

1

ここで説明されているように、UITabBarControllerDelegateプロトコルを実装する必要があります:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html

アクティブなタブを変更するには、tabBarController:shouldSelectViewControllerを使用します。ドキュメントで説明されているように、「このメソッドを使用して、特定のタブをアクティブなタブにするかどうかを動的に決定できます。」

于 2011-06-11T06:27:12.070 に答える
1

対応するUITabBarControllerのselectedViewControllerまたはselectedIndexメソッドを使用します。

この回答に対するコメントに応えて、これを実現する方法の例を示しました。

id firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
id secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController, nil];

[firstViewController release];
[secondViewController release];

// Select the second tab bar item and its view
self.tabBarController.selectedIndex = 1;

[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];

私のテストでは、UITabBarController の selectedViewController メソッドを使用して現在のビューを設定しても、selectedIndex プロパティが更新されないようです (新しいビューが表示されますが、選択された UITabBarItem は変更されません)。これは、ドキュメントで約束されている動作とは対照的です。ただし、上記のコード スニペットで示されているように selectedIndex メソッドを使用すると、問題なく動作するはずです。

于 2009-07-29T19:10:01.763 に答える
0

最後に私はここで解決策を得ました:

iphone sdk:最初のタブバーアイテムからのボタンクリックでフォーカスを別のタブバービューに設定します

とにかく、ありがとう。

于 2009-07-30T14:36:31.513 に答える