我创建了一个自定义TablePickerViewController,它是UITableViewController的子类。我正在使用此类来显示自定义类型TablePickerItem的对象列表。
我在我的 iOS 应用程序中多次使用TablePickerViewController来显示用户必须选择项目的不同类型的列表——然后另一个视图控制器MainViewController应该对这个选择做出反应并做一些事情。
我创建了这个协议并在TablePickerViewController中创建了一个委托属性:
@protocol TablePickerViewControllerDelegate <NSObject>
- (void)tablePickerViewController:(TablePickerViewController *)controller
didSelectItem:(TablePickerItem*)item;
@end
当我在MainViewController中设置一个新的TablePickerViewController时,它也被设置为委托——而不是当用户点击表格视图中的单元格时它会收到通知。
问题是我的MainViewController将使用不同的数据(TablePickerItem )设置多个TablePickerViewController。我应该如何设置我的MainViewController来处理这些多个TablePickerViewController?他们每个人的事件将导致在我的MainViewController中调用相同的协议方法。
此外,我需要获取TablePickerItem表示的元素,因为我需要知道例如在tablePickerViewController:didSelectItem
方法中操作时的元素 ID。我是否应该通过向 TablePickerItem 添加类似内容并将原始对象设置到此属性然后创建它来处理@property (nonatomic) id element
这个问题?
如果我的解决方案似乎以错误的方式完成,也许有人可以给我一个关于如何创建通用表格视图控制器的示例。