![]() |
1
4
此文件定义委托协议:
您可以将它包含在您定义的任何视图控制器的.h中。在该视图控制器中,您声明一个IVAR:
在创建子视图控制器的视图控制器中,像往常一样包含子视图控制器的.h。不管你怎么加
要指示它实现了您定义的协议,就像您指示它实现了UITableViewDelegate一样—您定义的委托的工作方式与此相同。 创建子视图控制器时:
所以现在子视图控制器有一个委托,它是父视图控制器,在其中创建子视图的那个,以及将它推到导航堆栈上的那个。当然,您必须在父视图控制器中实现委托功能: 顺便说一句,这里是您可以在堆栈中传递信息的地方——只需在创建之后设置ivar,与代理ivar相同。您会注意到有一个initWithString正在将一个字符串传递给一个自定义init方法,这是传递信息的另一种方法。你仍然做所有正常的初始化工作,只是额外传递数据。
然后在子视图控制器中
父VC从子VC获取数据。 |
![]() |
2
1
这个工作似乎是为了
|
![]() |
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 5 月前 |
![]() |
routern · 如何组合contextMenu和圆角矩形? 5 月前 |
![]() |
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
![]() |
dunoiww · 从全屏返回时如何触发onAppear 1 年前 |
![]() |
Community wiki · iPhone上ivar的继承问题 1 年前 |
![]() |
Community wiki · 查找iOS日历 1 年前 |
![]() |
Community wiki · 有效的IPhone编程技术[关闭] 1 年前 |