首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UITableViewController中创建UITableViewController中的UITabBarController

在UITableViewController中创建UITableViewController中的UITabBarController
EN

Stack Overflow用户
提问于 2011-07-18 09:36:27
回答 1查看 3.1K关注 0票数 1

我有一个基于UITabBarController,的应用程序,在其中一个选项卡中,我有UITableViewController来显示“产品”,直到这里一切都很完美。

现在,当单击UITableViewController中的一个单元格时,我希望打开一个UINavigationController来显示包含该产品详细信息的UIViewController

我认为应用程序层次应该如下所示:

代码语言:javascript
复制
UITabBarController (BASE) Level-1
  |
  |___ UITableViewController (PRODUCTS) Level-2
         |
         |___ UINavigationController Level-3
                |
                |___ UIViewController (PRODUCT DETAILS) Level-4

如何实现三级和四级?

(预先谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2011-07-21 14:28:37

首先,您需要将层次结构重置为如下所示:

代码语言:javascript
复制
UITabBarController (BASE)
  |
  |___ UINavigationController
      |
      |___ UITableViewController (PRODUCTS)
        |
        |___ UIViewController (PRODUCT DETAILS)

您需要在UINavigationController中添加一个TabBarController,然后使用它来推动Product。

要在UINavigation上添加TabBarController,请执行以下操作:

代码语言:javascript
复制
UITabBarController *tabBarController = [[UITabBarController alloc] init];

UINavigationController *tableNavController_1 = [[[UINavigationController alloc] initWithRootViewController:YourProductViewController_1] autorelease];
UINavigationController *table2NavController_2 = [[[UINavigationController alloc] initWithRootViewController:YourProductViewController_2] autorelease];

tabBarController.viewControllers = [NSArray arrayWithObjects:tableNavController_1, table2NavController_2, nil];

//then add the controller to view like,
// this:
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

//or this:
[self.view addSubview:tabBarController.view];

我建议您为每个UITableViewController创建一个新的ProductViewController,然后使用委托方法:- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath来推送细节视图:

代码语言:javascript
复制
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"Nib name" bundle:nil];
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES]
[detailViewController release];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6731003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档