这个控制器有一个子控制器,它用很少的方法实现了一个委托协议。
ParentController : UIViewController <ChildControllerDelegate>
Parent 控制器有一个从自身内部调用的方法(让我们调用它doSomething)。
现在,我需要doSomething从子控制器内的按钮调用此方法。所以我可以想到3个选项:
- 在协议中添加一个方法
pleaseCallDoSomething并从按钮调用该方法,然后pleaseCallDoSomething在父视图控制器中实现该方法,最后doSomething在pleaseCallDoSomething. 第二个选项是不在子视图协议中注册新方法,而是简单地使用:
[btn addTarget:self.delegate action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];在协议中添加一个
doSomething方法并在父视图控制器上实现它,然后在父视图控制器内部在需要时在本地调用它。(我的意思是从委托和本地调用委托方法)。
最佳实践是什么?
谢谢沙妮