我有一个UITextFieldDelegate
方法shouldChangeCharactersInRange
在几个视图控制器中完全相同,所以我只需将其复制粘贴到符合UITextFieldDelegate
的每个视图控制器中。我喜欢坚持DRY,在这里我在许多视图控制器中都有相同的代码。是否有可能重用委托方法以及有什么方法可以做到这一点,或者这是唯一/最佳方式以及为什么?
答案 0 :(得分:3)
创建一个UIViewController
的子类,它只实现你想要的委托方法。将其设置为项目中需要使用委托方法的所有视图控制器的父类。
除此之外,您还可以尝试查看类别。在UIViewController
上创建一个您想要的任何类别。将要实现的委托方法添加到此类别。现在,您#import
此类别将实现委托方法的所有视图控制器。
答案 1 :(得分:2)
您可以创建一个父对象类,所有视图控制器都从该类继承。将委托方法代码放在父对象实现中。
答案 2 :(得分:2)
您可以创建符合UITextFieldDelegate
并继承自NSObject
的对象。
然后,在每个视图控制器上,您可以创建此对象的实例,将其存储在属性上,并将UITextField
委托分配给此对象。