在这里,您可以看到我已经将子类文本视图的委托设置为它自己:
import Foundation
class ImageCaptionTextView: UITextView, UITextViewDelegate {
override func awakeFromNib() {
super.awakeFromNib()
delegate = self
}
现在在我的控制器中,我的委托方法不起作用。我使用了ImageCaptionTextView子类中的所有ImageCaptionTextView委托方法,而不是以前的Controllers类。
现在,我需要为ImageCaptionTextView添加一些代码到与控制器相关的textViewDidendediting委托方法中,但是因为ImageCaptionTextView的委托方法是在ImageCaptionTextView子类中设置的,所以添加到控制器中的新代码将无法工作。
我开始怀疑我是否只是把事情复杂化了,应该尽可能多地将代码移回控制器。我只是觉得它让我的生活变得更干净了。
所以我的问题是:
如何引用ImageCaptionTextView的父控制器,这样我就可以将它设置为控制器,而不是将ImageCaptionTextView的委托设置为其自身?
谢谢你的时间。
最佳答案
您可以实现委托方法,然后将相同的消息发送给控制器,但老实说,这很淘气。
考虑在子类化之前使用委托方法在控制器中尽可能地做任何事情。如果遇到委托方法无法处理的问题,可以对其进行子类化,但使用视图类实现尽可能少地进行更改。
关于objective-c - 如何引用子类父 View Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27988671/