0

我的意图是创建一个应用程序,该应用程序具有可单击的 UIButton 的主视图。单击其中一个按钮后,将进入 TabBarController 视图。

例如,当您单击 sample1 按钮时,将自动选择 TabBarController 视图中的第二个选项卡。当您单击 sample2 按钮将转到第三个选项卡时,更多按钮将转到更多选项卡,该选项卡将显示表格视图。

我的问题是当我单击 MoreViewController 中的 UITableViewCell 进入详细视图时。但是,当我想通过单击左上角按钮返回 TabBarController 时。该选项卡将更改为我在主视图中单击的选项卡。

TabBarController 的 selectedIndex 似乎没有改变,即使我在委托方法中设置了值

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath

或其他地方,例如viewWillAppear viewWillDisappearMoreViewController仍然,价值selectedIndex保持不变。

示例代码在这里-> http://uploadingit.com/file/qxfbw4cuzjdkk56v/9s.zip

有谁知道如何解决这个问题?

4

1 回答 1

0

实际上,您正在使用主导航控制器从主视图推送您的标签栏控制器。因此,它会在 POP 退出时将您带到主视图。

试试这个来创建标签栏

tabBar_Controller = [[UITabBarController alloc] init];
NSMutableArray *localControllersArray =[[NSMutableArray alloc]initWithCapacity:2];


firstViewController = [[FirstViewController alloc] initWithNibName:@"firstViewController" bundle:nil];
nav = [[UINavigationController alloc] initWithRootViewController:firstViewController];
nav.tabBarItem.title = @"item1";
nav.navigationBar.barStyle = UIBarStyleBlack;
[localControllersArray addObject:nav];
[self setNav:nil];

secondViewController = [[SecondViewController alloc] initWithNibName:@"secondViewController" bundle:nil];
nav = [[UINavigationController alloc]initWithRootViewController:secondViewController];
nav.tabBarItem.title = @"item2";
[localControllersArray addObject:nav];
[self setNav:nil];

tabBar_Controller.viewControllers = localControllersArray;
tabBar_Controller.delegate = self;
tabBar_Controller.selectedIndex = 0;
[self.window addSubview:tabBar_Controller.view];
于 2013-01-04T08:02:14.637 回答