我只是想清除一些与委托模式的混淆,当有多个UIViews和这些视图的子视图时应该构建它.为了说清楚,让我们定义一些变量.
让我们将这些对象定义为:
- 视图控制器
A- 的UIView
B- 子视图
C
现在,我理解委托模式是如何工作的(我认为),虽然我不确定如何在嵌套的UIViews中实现这种模式.我有一些问题是:
应该C包含一个由它的超级视图(B)实现的委托吗?
如果是,B那么应该将此信息传递给它的委托ViewController(A)?
这是一个场景,假设C有一个UITextView,这个文本视图的高度由从API服务获取的字符串决定.B无法访问API,因为此作业应通过ViewController(A)完成.
C然后应该包含一个指向的代表:
- ViewController的(
A)委托实现?- UIView的(
B)委托实现?- 其他?
如果答案是(2)那么应该B调用ViewController(A)并通过一系列事件传递这些信息?
这是一个小视觉:
A <IBDelegate><--- B <ICDelegate><--- C来电Delegate.OnApiComplete(float height);
在这种情况下,"代表"是什么?(ICDelegate或IBDelegate).什么是事件链?
当责任应该在控制器上时,我只是试图避免任何不必要的逻辑渗入UIView.
我知道您可以使用UIViews之间的共享对象来解决大多数情况,但是当谈到网络服务时,需要通过某种回调来检索这些值.
我需要进一步澄清,请告诉我.任何帮助是极大的赞赏.