将从自定义类加载的XIB的操作连接到故事板

时间:2012-06-20 15:58:57

标签: iphone xcode uibutton xib ibaction

我正在尝试创建一个可重用的组件来显示一些照片集。 基本流程如下:

  • 第一个视图:View。它包含我所谓的库,以编程方式设计并通过分配自定义类
  • 从故事板加载
  • 我在模式视图中拍摄照片,从“拍照”按钮
  • 开始
  • 将照片保存在磁盘上后,我要求PhotoLib从照片路径创建新的PhotoCell

我希望我的PhotoCell能够启用触控功能,因此当我点按它时,它会以模态方式打开第二个视图,但从我读到的内容中我无法通过我的PhotoCell或内部的UIImageView(不是控制器)。

那我该怎么办? View嵌入在NavigationController中,即使未在下面的屏幕截图中显示。

谢谢!

View from XCode

1 个答案:

答案 0 :(得分:2)

如果你在photolib中创建Photocell,那么photolib应该从photocell实现委托方法。但是photolib本身不是rootviewcontroller,所以它应该自己声明委托方法,并且包含的​​视图应该实现它。

基本上你将Photocell从它自己传递给Photolib(实现委托方法

-(void) openPhotoCell:(Photocell*)cell
{
  [self.delegate openPhotocell:(Photocell*)cell];
}

,然后将其传递给View,然后又打开它。

它可能看起来像是从耳朵上拔出一颗牙齿,但实际上它非常有用,如果你写出好的自解释代码,那就不是问题了。我目前正在开发一个有几十个视图和控制器的大项目,它工作得很好,没有人有问题。

如果您有更多图层,那么也许您应该查看NSNotification。

希望它有所帮助,我很乐意解释更多。

UPD:

链接:

about delegates in cocoa fundamentals guide

delegation pattern in wikipedia