Swift 代理对象为nil


(我上传的是高清图片,可直接点击图片查看原因)

我想做一个两个view间传值,Storyboard是这样的:

图片描述

顺序是点第一个视图中的 Button 进入第二视图

在第二视图中输入内容,再 Button 回到第一视图

根据所填内容,更新下面的 hello 这个lable.

两个社图的代码是:

第一个:

图片描述

第二个:

图片描述

我在 ModeViewController 中设置了一个断点,发现输入内容确定就回到第一视图,但却没能更新了 lable

断点的值为 nil

反复检查了,仍不得法,烦请帮忙看下是什么原因。

swift

whyisme 10 years ago

你搞错了这一点,你在ViewController里面的modeView和在present给你的ModeViewController并不是一个实例。前面这个是你调用ModeViewController()生成的, 后面那个也就是你看到的那个是segue从storyboard上面生成的。你把delegate设给前面那个modeView了,响应didClick时间的ModeViewController并没有设置delegate。

你需要在 prepareForSegue:这个方法里面取到destinationViewController,给它设置delegate。这里拿到的destinationViewController就是跳转之后展示的VC.

zzjin answered 10 years ago

Your Answer