也许这是两个不同的问题,但他们基本上都会问同样的问题。
我有一个视图应用,在我的屏幕上我有一个Table View
和一个Collection View
。
1)我想为我的tableview和我的集合视图提供datasource
(和delegate
当然),但我不希望它在同一个(主要){{1}中文件(用于更清洁的代码)。但是界面构建器只允许我将ViewController
(和datasource
)声明为文件的所有者,即视图控制器。我怎样才能做到这一点?以编程方式声明正确的方式?如果是这样,它应该在哪里完成?或者,也许,将数据源(和代理人)与delegate
分开不是最佳做法?
2)在我的表视图的自定义单元格中,我有一个按钮,我不想处理按钮在相同位置(文件)的操作我处理行选择(委托obj)。但是IB再一次让我将动作连接到自定义单元类。如何将动作连接到其他地方?
提前感谢您的回答,
丹
答案 0 :(得分:6)
您应该使用对象库中的Object(蓝色立方体)。拖放到文件所有者所在的部分(文档大纲)。然后在身份检查器中将其设置为您希望它的类(例如Outsider
)。这将允许您将Outsider
对象设置为委托/数据源,并允许您在那里写IBAction
。
诀窍是通过在xib中创建一个对象来使该对象(Class)在xib中可见(这将在加载nib时完成)。
另一方面,以编程方式设置委托或数据源没有任何问题,但通过界面构建器更方便。
答案 1 :(得分:1)
1)以编程方式进行。编写自己的代理并在代码中分配。清洁器。
2)在ViewController类中连接按钮的动作。这很干净,这就是视图控制器的用途。打开助理编辑器并将“箭头”拖到头文件中。
答案 2 :(得分:0)
问题1:
但是界面构建器只允许我声明为数据源(和 委托)文件的所有者,即视图控制器。
问题2:
但是IB再一次让我把动作连接起来 自定义单元类。如何将动作连接到其他地方?
两者都有相同的答案:
您可以通过从界面构建器中选择来更改类。