【发布时间】:2012-10-21 17:03:56
【问题描述】:
这可能是一个非常基本的问题,但我还没有找到答案。 我有一个 UITableView 作为我的应用程序的菜单。选择表格视图上的每一行时,都会打开 UIViewController 的不同子类。
目前,我的代码的工作方式与 Apple 的 UICatlog 示例中使用的方式相同。 在主视图控制器(表格视图)中,每个菜单项都在一个数组(menuList)中的字典中进行描述。每个字典都包含该屏幕的 UIViewController 子类的实例和有关菜单项的其他数据。当用户选择一行时,didSelectRow atIndexPath 启动并调用适当的视图控制器,存储在 menuList 数组的 indexPath.row 的字典中。
在表格视图首次加载时分配和初始化每个视图控制器似乎非常浪费。
我的问题是:有没有比 UICatalog 中演示的更好的方法来分配/初始化我的视图控制器子类,仅在点击关联的行时? (我知道我可以在 didSelectRow 中使用复杂的 if..else 结构,但这会导致 didSelectRow 方法非常长并破坏封装。我想知道是否有更简洁的方法来执行此操作,分配和初始化适当的基于视图控制器字典中的数据)
【问题讨论】:
标签: objective-c ios