2010-03-16 83 views
1

我有问题,我的视图控制器类有太多的代表,并开始变大。我想在单独的类中编写委托以保持视图控制器类的小。 对于以编程方式创建的代表(如UIAlertViewDelegate),我可以轻松完成。如何从ViewController类中提取委托?

问题出在Interface Builder中分配的代理中。我怎么能告诉IB把例如另一个类作为UITableViewDelegate或UITableViewDataSource?或者如何选择另一个IBAction方法,用于在按钮上触发事件?

一个解决方案是从IB删除连接并在ViewDidLoad中以编程方式编写它们,但由于我有很多ViewController,这将需要很长时间。

还有其他想法吗?

回答

0

您从IB中的库中拖动NSObject并在Inspector中更改其类。这样,您可以创建委托类的实例。然后,您可以将UITableView的委托出口连接到IB中新创建的对象。

+0

谢谢,让我开始。 我不明白什么时候会创建我的代理实例。 实际上,当委托方法应该被调用时,我得到了一个EXC_BAD_ACCESS,并且我想在运行时找不到委托对象。 – adranale 2010-03-16 14:51:45

+0

好吧..事实证明,我应该从viewController到我的委托出口,委托对象将在运行时创建(我想当视图控制器将被加载)。 – adranale 2010-03-16 15:47:45