我正在尝试在开发iOS应用程序时遵循MVC模型,并且在这里遇到问题:如何从tableviewcell而不是其父tableviewcontroller触发viewcontroller。 PresentViewController只能从ViewController调用。
情况如下:
我的目标是尽可能避免MVC的耦合,方法是避免每个对象都保留指向其他两个对象的指针,例如,我不希望该单元格保留MyDataObject的引用,也不希望它保持引用它的tableviewcontroller。
以下是如何处理这种情况以及面临的挑战的几种方案:
这里的问题是如何从myDataCell调用handleButtonTouched事件,并且仍然能够呈现下一个viewcontroller,而无需从myDataCell访问myDataObject?还是我必须在myDataCell中保留对myDataObject的引用?我已经从上面的委托方法中获得了myDataObject中myDataCell的引用。
通过这种方法,我可以执行myDataObject-> tableviewcontroller-> presentviewcontroller。但是,如何使myDataCell-> buttonclick事件作为触发器?我仍然需要将信息从myDataObject传递到myDataCell。
多谢你们。
编辑:
我忘了提到我遇到这种麻烦的目标是我打算将myDataCell和myDataObject保留在框架中。
最佳答案
单元格是MVC中的视图。控制器必须执行逻辑,这是中间步骤。
在那种情况下,我总是创建一个自定义委托,类似于UItableviewcellDelegate,类似于showThisVC:(UITableViewCell)cell,您可以很容易地获得行号,因为您知道控制器中的单元格。
关于ios - 如何从UITableViewCell呈现 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26288168/