iOS:将操作,数据源和代理设置为不属于文件所有者

RCB*_*RCB 2 xcode delegates datasource interface-builder ios

也许这是两个不同的问题,但他们基本上都会问同样的问题.我有一个单一的视图应用程序,在我的屏幕上我有一个Table View和一个Collection View.

1)我想为我的tableview和我的集合视图提供datasource(delegate当然),但我不希望它在同一个(主)ViewController文件中(为了更清晰的代码).但是界面构建器只允许我声明为datasource(和delegate)文件的所有者,即视图控制器.我怎样才能做到这一点?以编程方式声明正确的方式?如果是这样,它应该在哪里完成?或者,也许,将数据源(和代理)与之分离ViewController不是最佳做法?

2)在我的表视图的自定义单元格中,我有一个按钮,我不想处理按钮在相同位置(文件)的动作我处理行选择(委托obj).但是IB再一次让我将动作连接到自定义单元类.如何将动作连接到其他地方?


丹 ,谢谢你的答案

Rak*_*esh 6

您应该使用对象库中的Object(蓝色立方体).拖放到文件所有者所在的部分(文档大纲).然后在身份检查器中将其设置为Outsider您希望它的类(比如说).这将允许您将Outsider对象设置为委托/数据源,并且还允许您在IBAction那里写入.
诀窍是通过在xib中创建一个对象(在加载nib时完成),使该对象(Class)在xib中可见.

另外,以编程方式设置委托或数据源没有任何问题,但是通过界面构建​​器更方便.