【发布时间】:2015-09-15 10:15:38
【问题描述】:
我已经在模态中声明了我的协议,如下所示
protocol MapViewControllerDelegate : class {
//func mapViewLocationSelected(sender:AnyObject, location:CLLocation, address:String)
func didSelectMap(sender:AnyObject)
}
我还声明了委托如下
weak var delegate : MapViewControllerDelegate?
然后我关闭屏幕并调用委托方法,如下所示
self.dismissViewControllerAnimated(true, completion: nil)
delegate?.didSelectMap(self)
在调用模型的视图控制器中,我有以下内容
如下声明模态VC
var mvController : MapViewController = MapViewController()
然后我在viewDidLoad下设置委托如下
mvController.delegate = self
然后我实现了委托方法
func didSelectMap(sender: AnyObject) {
println("Came here")
}
但我从来没有来过ddidSelectMap 方法。我以前做过这个并且它有效,我无法弄清楚出了什么问题。任何帮助,将不胜感激。
父视图控制器 pastebin.com/7z5vg6yJ
模型视图控制器 pastebin.com/DwAa6erQ
会不会是我使用的 MapKit 导致的问题?
提前致谢。
【问题讨论】:
-
当你调用它时,delegate == nil 吗?我检查你的代码。而且我没有看到您从 NewPostViewController 推送/呈现 mvController 的位置
-
是的 R.K 我可以看到当我放一个换行符并检查时它是零。这是为什么?
-
我认为这是因为您将委托呈现并分配给不同的控制器
-
我正在将代表分配给正确的代表,但可能是 ARC 造成破坏?您通常如何分配委托?
标签: ios iphone swift delegates