2012-06-20 57 views
2

我试图创建可重用组件以显示某些照片集。 基本流程如下:将从自定义类加载的XIB的动作连接到故事板

  • 第一视图:View。它包含我所谓的库,以编程方式设计并通过分配自定义类从故事板加载
  • 我在模式视图中拍摄照片,从“拍照”按钮拍摄照片
  • 照片保存在磁盘上后,我问PhotoLib从光路检测

创建一个新的PhotoCell我想我PhotoCell是触摸启用,因此,当我点击它,它会打开一个模态的方式第二种观点,但是从我读,我不能做这从我的PhotoCell或UIImageView里面(不是控制器)。

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

谢谢!

View from XCode

+0

你能不能添加一个按钮风格 “自定义” 上面的ImageView,并与这方面的工作?我做了这样的事情如果我理解你的想法。也许你应该展示你的故事板和部分代码来澄清。 – Protheus

+0

我可以,但我仍然不知道如何将其IBAction连接到我的代码。如果我可以总结一下,我会尽量发布更多信息 – dvkch

+0

是的,我已经重新阅读了您的问题。也许你需要Photocell类中的协议,它有方法 - (void)didTapPhotoCell:(Photocell *)self或类似的东西,实现你的视图作为委托并从那开始行动? – Protheus

回答

2

如果您在photolib打造电眼,然后photolib应该执行从光电委托方法。但photolib本身不是rootviewcontroller,所以它应该自己声明委托方法,并且包含的​​视图应该实现它。

基本上你从自身通过光电池Photolib(实现委托方法

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

,然后将其传递到View,这反过来将其打开。

它可能看起来像拔了牙从实际上来说,它的工作非常有效,如果你编写好的自解释代码,这不是问题,我目前正在开发一个拥有数十个视图和控制器的大型项目,它工作的很好,没有人遇到问题。

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

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

UPD:

链接:

about delegates in cocoa fundamentals guide

delegation pattern in wikipedia

+0

它工作得很好,但我决定在PhotoLib中创建一个'delegate'属性,并且每次创建一个'PhotoCell'时,我都从它设置它的委托。我认为这将是更明显的,因为照片库本身并不需要委托,但也许如果我需要创建一个功能齐全,易于使用的库,那么我将不得不做得更好 – dvkch

+0

@dvkch don'不用担心,你做的事很正常。是的,将来你可能想重新实现它。但是,如果你的项目不会变得更复杂,你不必这样做。 – Protheus

+0

好吧!谢谢 !我想将你的帖子设置为已接受的答案,但是你可以添加一个链接,以便快速解释代表将来的读者吗?'' – dvkch