过去我会这样做:
MainViewController
推ProfileViewController
willPerformSegue
中,为ProfileViewController
实例提供目标profile
访问权限self
ProfileViewController
允许用户修改其个人资料ProfileViewController
次调用会发送消息didSave
进行委派并弹出MainViewController
通过将模型保存到磁盘来处理didSave
所有这些仍然适用于Swift。我的问题是:在Swift时代,这仍然是处理VC间通信的有利方式吗?
答案 0 :(得分:2)
是的,确实如此。或者你可以用同样的方式做到这一点。
Swift只是另一种语言,它使用相同的库。 你描述的事情与那些库有关,UIViewController的概念是在它们中定义的,所以一切都以同样的方式完成。
委托模式运行良好,但它不是控制器之间通信的唯一方式,并且在所有情况下都不是“最佳”。最好的方法取决于您尝试解决的任务,而不是您使用的语言。
答案 1 :(得分:1)
我的问题是:在Swift时代,这仍然是处理VC间通信的有利方式吗?
注意方法名称是-performSegueWithIdentifier:sender:
,这是很好的方法,据我所知,它在Swift下仍然很好。 Apple在2015年WWDC上没有公布任何事情在这方面发生了变化,UIViewController
界面没有提出任何更有说服力的方法来配置视图控制器。
MainViewController
通过将模型保存到磁盘来处理didSave
这也没关系,因为MainViewController
是ProfileViewController
的委托,听起来ProfileViewController
并不知道整个模型。在其他情况下,视图控制器可以直接使用模型,并且模型可以处理保存。但这是一个设计问题,而不是Swift与Objective-C问题。