我有两个视图控制器,MainVC
和 ModalVC
。
当用户点击 MainVC
上的按钮时,模态视图控制器会出现。
然后,用户可以点击另一个按钮来关闭它并返回到主视图。
我尝试过这两种方法,它们都能实现同样的功能:关闭模态视图控制器:
//method 1:
// File: ModalVC.swift
//
@IBAction func dismissTapped() {
self.dismissViewControllerAnimated(false, completion: nil);
}
就像我之前所说,那个方法也可以正常运行,但考虑另一种方法:使用委托让主控制器来执行dismiss操作:
// method 2: part A
// File: ModalVC.swift
//
protocol ModalVCDelegate {
func modalVCDismissTapped();
}
...
...
...
var delegat:ModalVCDelegate? = nil;
...
...
@IBAction func dismissTapped() {
delegate.modalVCDismissTapped();
}
在主视图控制器的自定义类文件上:
// method 2: part B
// File: MainVC.swift
class MainVC : UIViewController, ModalVCDelegate {
...
...
func modalVCDismissTapped() {
self.dismissViewControllerAnimated(false, completion: nil);
}
}
这两种方法已经做了必要的工作,那我是否需要担心可能出现的内存泄漏问题呢?
任何解释都会有所帮助。