私のタブベースのアプリでは、プログラムで 4 つのタブを持つタブバー アプリを作成しました。最初のタブには 5 つの画面があり、3 つ目のタブには 3 つの画面があります。
最初のタブの 2 番目の画面で 1 つのボタンをクリックすると、3 番目のタブの 2 番目の画面に移動する必要があります。しかし、今では3番目のタブで最後に開いた画面に行きます。
例: tabControllers: a、b、c、d
a tab: 1->2>3>4>5
C tab: 1>2>3
選択したタブは: & 画面は: 3 &
その画面のボタンをクリックして移動します
選択されたタブはCで、画面は2番目です
参照リンクは: Change the selected TabBar index on button click
私のコードは次のとおりです。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//for home tab..
UINavigationController *nav1 = [[UINavigationController alloc] init];
UIViewController *viewController1 = [[[CarAccidentAppViewController alloc] initWithNibName:@"CarAccidentAppViewController_iPhone" bundle:nil] autorelease];
nav1.viewControllers = [NSArray arrayWithObjects:viewController1, nil];
//for steps tab...
UINavigationController *nav2 = [[UINavigationController alloc] init];
UIViewController *viewController2 = [[[FirstSteps alloc] initWithNibName:@"FirstSteps" bundle:nil] autorelease];
nav2.viewControllers = [NSArray arrayWithObjects:viewController2, nil];
//for profiles tab...
UINavigationController *nav3 = [[UINavigationController alloc] init];
UIViewController *viewController3 = [[[Profiles alloc] initWithNibName:@"Profiles" bundle:nil] autorelease];
nav3.viewControllers = [NSArray arrayWithObjects:viewController3, nil];
//for contact us tab...
UINavigationController *nav4 = [[UINavigationController alloc] init];
UIViewController *viewController4 = [[[ContactUs alloc] initWithNibName:@"ContactUs" bundle:nil] autorelease];
nav4.viewControllers = [NSArray arrayWithObjects:viewController4, nil];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1,nav2,nav3,nav4 ,nil];
self.window.rootViewController=self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
//Button click event
-(IBAction)btnNewDriverPressed:(id)sender
{
[[NSUserDefaults standardUserDefaults]setInteger:0 forKey:@"showselectedIndex"];
self.tabBarController.selectedViewController=[self.tabBarController.viewControllers
objectAtIndex:2];
}