Jua*_*res 9 objective-c uitableview data-structures uistoryboard
我想构建一个应用程序来导航数据层次结构.此层次结构的结构类似于我在下图中显示的结构.结构的一个分支可以比其他分支更多.

我想用TableViews向下钻取这个结构,如下所示:
A > AA > AAB > AABA
Run Code Online (Sandbox Code Playgroud)
要么
A > AB > ABA
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如果我的故事板中只有一个TableViewController并重复使用它来显示每个新的数据级别?我不想tableviewcontrollers在我的故事板中连接一堆,因为我不确定我是否会有3,4或100级的层次结构.
要仅使用故事板中绘制的单个VC来递归到任意深度,请使用故事板绘制顶层:导航控制器,其根部具有表视图控制器.表vc应该是UITableView子类,并且在storyboard中具有故事板标识符(例如,"MyCustomTableVC").
为MyCustomTableVC提供一个公共属性(比如,ModelItem*节点),指示模型中应该显示哪个节点.
而不是故事板segues,当表vc得到时didSelectRowAtIndexPath,让它创建自己的另一个实例...
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
// Imagine it's called MyCustomTableVC
MyCustomTableVC *newVC = (MyCustomTableVC*)[mainStoryboard
instantiateViewControllerWithIdentifier: @"MyCustomTableVC"];
Run Code Online (Sandbox Code Playgroud)
将newVC模型节点设置为所选项目(indexPath.row中模型中的项目),然后推送到它...
// making up a lot of stuff about your model here, but hopefully you get the idea...
newVC.node = [self.model objectAtIndex:indexPath.row];
[self.navigationController pushViewController:newVC animated:YES];
Run Code Online (Sandbox Code Playgroud)
这种方法具有获得所有导航控制器行为的好处:动画推送和弹出,后退按钮等.
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |