我的目的是创建一个具有UIButton主视图的应用程序。单击其中一个按钮后,将进入TabBarController View。
例如,当您单击sample1按钮时,将自动选择TabBarController视图中的第二个选项卡。当您单击sample2按钮将转到第3个选项卡时,更多按钮将转到更多选项卡,这将显示表视图。
我的问题是当我在MoreViewController中单击UITableViewCell进入详细视图时。但是,当我想通过单击左上角按钮返回TabBarController时。该选项卡将更改为我在主视图中单击的选项卡。
似乎tabBarController的selectedIndex没有改变,即使我在委托方法中设置了值
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
或viewWillAppear
中的viewWillDisappear
MoreViewController
等其他地方,selectedIndex
的价值仍保持不变。
示例代码在这里 - > http://uploadingit.com/file/qxfbw4cuzjdkk56v/9s.zip
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
实际上,您正在使用主导航控制器从主视图中推动Tabbar控制器。因此,它会在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];