Iphone 如何以NSTableView样式创建多级视图?

Iphone 如何以NSTableView样式创建多级视图?,iphone,ios,cocoa-touch,xcode4,Iphone,Ios,Cocoa Touch,Xcode4,我有一个项目,有多个层次。 我没有找到一个合适的方法开始。该项目的实物模型正在进行中 层次结构树状结构。 它几乎有10个级别。那么,如何在多个应用程序中实现这些级别呢 一个操作可以打开特定表视图的表视图? 我应该为所有级别创建不同的视图吗?或者我可以 只需在plist文件xml中编写视图的数据结构并使用 该文件适用于所有级别。 请告诉我怎么开始。 谢谢如果每个级别都需要用户交互&有大量信息要显示给用户,那么您应该使用嵌套的UITableView,点击其中一行可以进入下一行。您可以查看设置应用程序

我有一个项目,有多个层次。 我没有找到一个合适的方法开始。该项目的实物模型正在进行中 层次结构树状结构。 它几乎有10个级别。那么,如何在多个应用程序中实现这些级别呢 一个操作可以打开特定表视图的表视图? 我应该为所有级别创建不同的视图吗?或者我可以 只需在plist文件xml中编写视图的数据结构并使用 该文件适用于所有级别。 请告诉我怎么开始。
谢谢

如果每个级别都需要用户交互&有大量信息要显示给用户,那么您应该使用嵌套的UITableView,点击其中一行可以进入下一行。您可以查看设置应用程序以获取示例


是的,您必须为每个标高创建一个视图。然而,从用户体验的角度来看,10个级别似乎有点太多了。你能想到一个现有的应用程序有10个级别吗?。您应该考虑通过将几个级别组合在一起来展平您的树。

如果每个级别都需要用户交互&需要向用户显示大量信息,那么您应该使用嵌套的UITableView,在其中点击一行可以进入下一行。您可以查看设置应用程序以获取示例


是的,您必须为每个标高创建一个视图。然而,从用户体验的角度来看,10个级别似乎有点太多了。你能想到一个现有的应用程序有10个级别吗?。您应该考虑通过将几个级别组合在一起来展平树。

使用XCode中基于CoreData的导航应用程序

创建一个实体,例如与自身有一对多关系的TreeData,称为“children”。在上面创建一对一的反向关系,称为“父”

在tableView上:DidSelectRowatineDxPath:在委托中,您需要检查“TreeData”中是否设置了“children”,如果是这种情况,则需要推送当前所在的TableViewController的新实例,并将所选项上的子项作为数据源

这将允许您继续遍历

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>

使用XCode中基于CoreData的导航应用程序

创建一个实体,例如与自身有一对多关系的TreeData,称为“children”。在上面创建一对一的反向关系,称为“父”

在tableView上:DidSelectRowatineDxPath:在委托中,您需要检查“TreeData”中是否设置了“children”,如果是这种情况,则需要推送当前所在的TableViewController的新实例,并将所选项上的子项作为数据源

这将允许您继续遍历

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>

谢谢你的建议。谢谢你的建议。谢谢Twilson的建议,我想这些代码将来对我有帮助:@regeint,如果我的答案是可以接受的,你能投票支持我的答案吗。谢谢Twilson的建议,我想这些代码将来对我有帮助:@regeint,如果我的答案是可以接受的,你能投票赞成吗。