0

在我的故事板中,我有一个嵌套在视图控制器场景中的视图(UIScrollView 的一个子类,称为 AQGridView)。我想为 AQGridView 分配一个控制器委托和数据源,它们在单独的 .m 和 .h 文件中定义,而不是父视图控制器。我该怎么做呢?Storyboard 只允许我将连接器拖到 AQGridView 的父视图控制器。

编辑: 我试过在父视图控制器中做这样的事情(其中 myGrid 是指向 AQGridView 的 IBOutlet 并且 myGridController 是父视图控制器的属性):

- (void)awakeFromNib
{
  // note: kzMyGridController is a subclass of AQGridViewController
  myGridController = [[kzMyGridController alloc] init];
  myGrid.delegate = myGridController;
  myGrid.dataSource = myGridController;
}

但它似乎没有工作,因为没有调用它的委托方法。我究竟做错了什么?

4

2 回答 2

1

如果 StoryBoard 不允许您使用,只需在代码上执行即可。这更有意义,因为它实际上迫使您拥有一个对象(委托)并在需要时设置它。


它应该是:

- (void)awakeFromNib
{
  // note: kzMyGridController is a subclass of AQGridViewController
  myGridController = [[kzMyGridController alloc] init];
  myGrid.delegate = myGridController;
  myGrid.dataSource = myGridController;
}
于 2012-05-10T17:01:19.770 回答
0

答案是我必须在 AQGridView 上调用 reloadData。视图是在其委托之前创建的,因此它的初始数据获取方法在没有接收器的情况下触发。

于 2012-05-10T19:59:50.013 回答