VC-VC通信是否随Swift而改变?

时间:2016-01-08 20:24:29

标签: ios swift

过去我会这样做:

  • MainViewControllerProfileViewController
    • willPerformSegue中,为ProfileViewController实例提供目标profile访问权限
    • 同时将目标代理设置为self
  • ProfileViewController允许用户修改其个人资料
  • 用户按保存
  • ProfileViewController次调用会发送消息didSave进行委派并弹出
  • MainViewController通过将模型保存到磁盘来处理didSave

所有这些仍然适用于Swift。我的问题是:在Swift时代,这仍然是处理VC间通信的有利方式吗?

2 个答案:

答案 0 :(得分:2)

是的,确实如此。或者你可以用同样的方式做到这一点。

Swift只是另一种语言,它使用相同的。 你描述的事情与那些库有关,UIViewController的概念是在它们中定义的,所以一切都以同样的方式完成。

委托模式运行良好,但它不是控制器之间通信的唯一方式,并且在所有情况下都不是“最佳”。最好的方法取决于您尝试解决的任务,而不是您使用的语言。

答案 1 :(得分:1)

  

我的问题是:在Swift时代,这仍然是处理VC间通信的有利方式吗?

注意方法名称是-performSegueWithIdentifier:sender:,这是很好的方法,据我所知,它在Swift下仍然很好。 Apple在2015年WWDC上没有公布任何事情在这方面发生了变化,UIViewController界面没有提出任何更有说服力的方法来配置视图控制器。

  

MainViewController通过将模型保存到磁盘来处理didSave

这也没关系,因为MainViewControllerProfileViewController的委托,听起来ProfileViewController并不知道整个模型。在其他情况下,视图控制器可以直接使用模型,并且模型可以处理保存。但这是一个设计问题,而不是Swift与Objective-C问题。