4

我创建了一个具有a 的UIView被调用,然后我添加了继承的类调用。它工作正常。我感到困惑的一件事是,当我可以处理继承类中的操作但我想处理它以便我可以执行适当的操作时,我当前添加的视图控制器中处理操作的最佳方法是什么。ImageShowcaseUIScrollViewUIButtonImageShowcaseCellImageShowCaseUIControlEventTouchUpInsideUIButtonImageShowcaseCellView Controller

实现这一目标的最佳方法是什么。

4

3 回答 3

4

在您的自定义 ImageShowcaseCell 类中,您可以将动作发送到响应者链并允许视图控制器处理它:

[[UIApplication sharedApplication] sendAction:@selector(someMethodOnMyViewController:) to:nil from:self forEvent:nil];

或者,您也可以使用:

  1. 委托模式 - 将您的视图控制器设置为 ImageShowcaseCell 的委托。
  2. 在您的自定义类中创建一个基于块的方法以在触摸后执行该块。
于 2012-11-19T20:18:38.733 回答
1

有点晚了,但为什么不使用响应链并在ImageShowCaseCell按钮上添加操作呢?如果你像这样添加它:

[imageShowCaseCellInstance setTarget:nil action:@selector(methodYouWantCalledOnYourViewController) forControlEvents:UIControlEventTouchUpInside

只要您imageShowCaseCellInstance没有实现此方法并且您的视图控制器实现了,响应者链就应该将其传递(因为nil指定为target)到您的视图控制器,只要ImageShowCaseCell在您的视图控制器的层次结构中。

Edwin 的回答(https://stackoverflow.com/a/13461504/482557)有效,但通过在按钮上设置目标,您可以更加明确。

于 2016-04-22T16:00:40.447 回答
0

通过使用委托实现它。我的view controllerfor中已经有一位代表ImageShowCase。所以我做了什么,我添加了另一个ImageShowcaseImageShowcaseCell现在我将UIControlEventTouchUpInside事件从 ImageShowcaseCell 传递给 ImageShowcase,并将ImageShowcase其传递给view Controller.

ImageShowcaseCell (TouchUpInside) ----> ImageShowcase ----> ViewController

不能更干净。:)

于 2012-11-19T21:11:57.090 回答