作为对iPhone开发还不熟悉的人,我一直在努力寻找用于管理多个子视图的良好设计模式,特别是在子视图需要定义相同类型的委托方法的情况下.
例如,我有一个视图,我需要根据用户操作在2个UITableViews之间进行交换.两个UITableView都需要定义一个UITableViewControllerDelegate对象来填充行等.
您是否更有经验的iPhone开发人员发现重载主视图控制器作为两个子视图的委托是正确的做事方式?目前我定义了两个对象,每个对象都充当每个UITableView的委托,以尽量使事情更有条理.它完成了我需要的东西,但这是一个很好的模式吗?
我会假设有一些最好的实践可以避免内存管理和类似的有趣事情的各种陷阱.提前致谢!
您可以使用视图作为容器来保存像表格这样的元素.因此,在您概述的情况下,您将拥有一个容器视图并将UITableViews交换进出...
一个好的方法是为每个表配备单独的视图控制器.否则,它会变得太乱,试图在各种表视图委托方法中跟踪您支持的数据集,并且使得对一个可能不适用于另一个表的表进行大量自定义变得更加困难.
使用组合视图控制器时要注意的主要事项是"self.navigationController",相关的调用不会返回任何内容(因为它们不是导航控制器的子项),因此您需要传递该引用或其他方式在表视图控制器中处理有些不同.