タブバー付きのiOS用アプリを開発しています。バーには5つ以上のボタンがあるので、iPhoneにはもっとボタンがあります。ここで、次のボタンがあるとします。Button1 Button2 Button3 Button4 More(およびMore内)Button5Button6。[その他]、[Button5]の順にクリックすると、Button5に関連するビューが表示されます。次に、Button2(Moreにはありません)をクリックして、Button2に関連するビューに移動します。ここまでは順調ですね。[その他]をクリックすると、[その他]タブではなく、Button5に関連するビューに戻ります。より多くのボタンを常により多くのビューに移動させるにはどうすればよいですか?
質問する
196 次
4 に答える
1
ボタンを追加する必要はありません。ビューコントローラをUITabBarControllerに設定するだけです
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
ビューコントローラが5つ以上ある場合は、ボタンが自動的に追加されます。つまり、NSArrayの数が5を超えています。
于 2013-03-27T10:38:10.013 に答える
0
もう1つの方法は、ユーザーがさらに押すたびに、最初のボタンが削除され、他のボタンが追加されることです。基本的に、配列を作成し、その中にすべてのボタンを保持することができます。そして、押されたボタンに基づいて、その特定のビューに移動できます。
例:
最初にあなたは持っています: Button1
Button2
Button3
Button4
Next
[次へ]をクリックした後:Prev
Button3
Button4
Button5
Button6
于 2013-03-27T10:05:59.873 に答える
0
このコードをアプリdelegate.mで使用して、問題を解決しました
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController;
if (tabBarController2.selectedIndex < 4) {
[tabBarController2.moreNavigationController popViewControllerAnimated:NO];
}
}
于 2013-03-28T08:24:48.630 に答える
0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[UIViewController alloc] init];
UIViewController *viewController2 = [[UIViewController alloc] init];
UIViewController *viewController3 = [[UIViewController alloc] init];
UIViewController *viewController4 = [[UIViewController alloc] init];
UIViewController *viewController5 = [[UIViewController alloc] init];
UIViewController *viewController6 = [[UIViewController alloc] init];
UIViewController *viewController7 = [[UIViewController alloc] init];
UIViewController *viewController8 = [[UIViewController alloc] init];
UIViewController *viewController9 = [[UIViewController alloc] init];
[viewController1.view setBackgroundColor:[UIColor whiteColor]];
[viewController2.view setBackgroundColor:[UIColor redColor]];
[viewController3.view setBackgroundColor:[UIColor greenColor]];
[viewController4.view setBackgroundColor:[UIColor grayColor]];
[viewController5.view setBackgroundColor:[UIColor blueColor]];
[viewController6.view setBackgroundColor:[UIColor yellowColor]];
[viewController7.view setBackgroundColor:[UIColor brownColor]];
[viewController8.view setBackgroundColor:[UIColor magentaColor]];
[viewController9.view setBackgroundColor:[UIColor purpleColor]];
[viewController1 setTitle:@"one"];
[viewController2 setTitle:@"two"];
[viewController3 setTitle:@"three"];
[viewController4 setTitle:@"four"];
[viewController5 setTitle:@"five"];
[viewController6 setTitle:@"six"];
[viewController7 setTitle:@"seven"];
[viewController8 setTitle:@"eight"];
[viewController9 setTitle:@"nine"];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3, viewController4, viewController5, viewController6, viewController7, viewController8, viewController9];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
私が試したサンプルのAppDelegateコードを追加しましたが、それは私にとってはまったく問題なく機能します。これであなたがどんな問題を抱えているか教えてください。
于 2013-03-28T09:31:33.763 に答える