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