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