我正在构建一个简单的应用程序,显示大多数汽车品牌的信息。
我有rootViewController来显示数据行(例如梅赛德斯,宝马,丰田等)当某些行被触及rootViewController加载视图时。在该视图中,我想显示每个汽车品牌的信息。所有品牌描述都是相同的(成立年份,型号等)因为所有汽车品牌的视图结构都是相同的,我将只使用一个视图控制器来显示信息。
问题是我无法弄清楚如何做到这一点? 如何将描述数据从rootViewController传递给displayBrandInformation?
答案 0 :(得分:0)
您必须将最终弹出到navigationcontroller堆栈的tableViewController子类化。在子类tableViewController中,你应该有一个数组(或一些其他数据结构)来保存相关信息,它应该公开为public(使用@synthesize)。然后,在初始化新的tableView之后,但在将其推入堆栈之前,请设置数组。例如,在RootViewController.m中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
SubmenuViewController *svc = [[SubmenuViewController alloc] initWithStyle:UITableViewStyleGrouped];
svc.arr = someArray; //this array holds your entire Submenu, this should be based on whatever the user selected in newIndexPath.row
[svc setTitle:@"Some Title"];
[self pushViewController:svc animated:YES];
}
由于SubmenuViewController是UITableViewController的子类,在(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
内,您将根据arr数组返回正确的单元格。
编辑:我应该指出,在我的例子中,RootViewController子类UINavigationController
答案 1 :(得分:0)
你的rootViewController没有加载视图(或者不应该加载),它创建了一个视图控制器,然后管理详细视图。 rootViewController应该为详细视图控制器提供完成其工作所需的任何数据;在这种情况下,这可能是包含特定品牌数据的对象。