我知道这已经在很多其他话题上讨论过几次了,博客,书,youtube等等。但是,让我来解释一下我的情况。我希望当应用程序打开时,它会显示一个facebook连接按钮来登录。用户登录后,它将启动tabBarView。在我的应用代理中,我首先添加了MainViewController,并在那里显示了facebook connect登录按钮。然后,在登录之后,它添加tabBarViewController作为它的子视图。
现在,在这个tabBarViewController中,我想让它有两个选项卡。第一个选项卡是people,第二个是map。我想在“人员”选项卡中添加一个navBar。因此,我在代码中执行的操作如下所示:
tabBarViewController = [[TabBarViewController alloc] init];
mvc = [[MapViewController alloc] init];
UIImage* mapIcon = [UIImage imageNamed:@"13-target.png"];
mvc.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"Map" image:mapIcon tag:0] autorelease];
tvc = [[TableViewController alloc] init];
UIImage* peopleIcon = [UIImage imageNamed:@"112-group.png"];
tvc.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"People" image:peopleIcon tag:0] autorelease];
friendsNavController = [[FriendsNavController alloc] init];
tabBarViewController.viewControllers = [NSArray arrayWithObjects: friendsNavController, tvc, mvc, nil];
tvc.userInfo = _userInfo;
[self.tabBarViewController viewWillAppear:YES];
[self.view addSubview:self.tabBarViewController.view];现在的结果是我有3个选项卡栏,一个有一个导航栏,一个有一个表格列表,还有一个是地图。如何更改代码,使导航栏和表视图位于一个选项卡栏中?我在这里做错了什么?
这是它在界面生成器上的样子:

发布于 2010-10-28 22:15:29
选项卡栏控制器的视图控制器应该只由导航控制器和mapViewController组成。
TableViewController (tvc)将在导航控制器的viewControllers中,而不是在tabBarViewController中。在friendsNavController上调用initWithRootViewController:tvc
因此,您的数组应该只有两个tabBarViewControllers项(friendsNavController和mvc)。
此外,这也意味着navigationController具有tabBar项,而不是tableViewController。
https://stackoverflow.com/questions/4043559
复制相似问题