0

我已经阅读了很多文章以获取有关目标 c 中整个委托概念的一些信息。至少我认为我对此有大致的了解。但是我没有找到我的问题的答案 - 或者我只是找到了它但没有得到它......

在我的情况下,我有一个自定义子视图,我正在我的 UIViewController 上以编程方式添加。我想与自定义 UIView 进行交互以调用控制器的某些方法。我认为最好有一个委托概念,而不是在 SubView 中引用我的 UIViewController,对吧?我的问题是,难道不能用我的 UIScrollViewDelegate 做点什么吗?我的 UIViewController 正在实现一些委托方法,因为我的 SubView 是 UIScrollView。那么是否可以添加一个自定义方法,我可以使用以下方法调用它:

[self.delegate myCustomMethodOnUIViewController]

或者最好的方法是什么?我应该设置一个协议并将其作为自定义委托添加到我的 UIViewController 吗?我是否必须在我的子视图上设置一个委托属性?

感谢帮助!安迪

4

1 回答 1

0

如果您将 UIView 作为子视图添加到 UIViewController,并且您想在子视图中执行父视图中的某些方法,那么您的软件设计中可能会出现一些错误。

如果有必要这样做,请使用 @class 变量进行循环包含并调用您的方法。阅读更多关于 @class 指令的信息。

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocDefiningClasses.html

可以在链接中阅读更多插图: @class vs. #import

您可以使其与委托和协议一起使用,但请确保您在相同的上下文中正确处理内存以避免泄漏。

于 2012-08-10T09:41:43.750 回答