我有一个有多个级别的项目。 我没有找到合适的方式开始。项目模拟是在 层次结构(树状结构)。 它有近10个级别。那么如何在多个中实现这些级别 表视图一个动作可以打开特定的表视图? 我是否应该为所有级别创建不同的视图?或者我可以 只需在plist文件(xml)中编写我的视图的数据结构并使用 所有级别的文件。 请建议我如何开始。 谢谢
答案 0 :(得分:2)
如果每个级别都需要用户互动&有大量的信息要显示给用户,那么你应该使用嵌套的UITableViews,在那里点击一行导致下一行。您可以查看设置应用程序以获取示例。
是的,您必须为每个级别创建一个视图。但是,从用户体验的角度来看,10个级别似乎有点过分(您能想到现有的应用程序有10个级别吗?)。您应该考虑通过将几个级别组合在一起来展平您的树。
答案 1 :(得分:2)
使用XCode基于CoreData的“基于导航的应用程序”。
创建一个与自身具有一对多关系的实体(例如TreeData),称为“children”。在其上创建一个反向关系(一对一),称为“父”。
在委托中的 tableView:didSelectRowAtIndexPath:,您需要检查“TreeData”中是否设置了“children”,如果是这样,那么您需要推送您当前所在的TableViewController的新实例,并将所选项目上的子项作为dataSource。
这样可以让你继续穿越。
一个plist是提供一般想法并使某些工作变得最简单的方法。
你也可以用plist实现同样的目标。
这样的事情:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Tree Root</key>
<array>
<dict>
<key>title</key>
<string>Google (No Children)</string>
<key>url</key>
<string>www.google.com</string>
</dict>
<dict>
<key>title</key>
<string>List of Web Sites</string>
<key>children</key>
<array>
<dict>
<key>title</key>
<string>digg</string>
<key>url</key>
<string>digg.com</string>
</dict>
<dict>
<key>title</key>
<string>iGoogle</string>
<key>url</key>
<string>www.google.com/ig</string>
</dict>
<dict>
<key>title</key>
<string>Stack Overflow</string>
<key>url</key>
<string>www.stackoverflow.com</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/