第一个情景:
我有两个视图控制器
VC1有一个按钮和一个标签
VC2有一个按钮和一个文本字段
VC1之间的模态segue - > VC2
当我运行这个segue时,我们将VC1设置为VC2的委托。
我们转到VC2,填写文本字段,点击按钮,VC2被解雇。
在VC1上运行一些委托方法,并填写VC1.label。
问题:有没有办法在没有解雇VC2的情况下这样做...例如,如果VC2.button只是模态将我们反驳,或者将我们拉回到VC1我假设它重新初始化了viewcontroller并且标签不会改变了。你总是不得不关闭视图控制器
情景2:
再次,两个视图控制器。
这次它反转..所以我有
带有文本字段和按钮的VC1
带有标签和按钮的VC2
soo现在我们填写VC1,我们希望它出现在VC2上。但如果没有塞格,他们没有任何关系。有没有办法在使用委托而没有一个初始segue的情况下在VC之间传递数据?这个segue要求使用特定于委托控制器的委托吗?我假设它是因为在其他情况下我们只是实例化对象,并使用他们的委托方法。但是对于视图控制器,我们想引用一个已经创建的控制器,而不是实例化第二个。
注意:我正在使用故事板
答案 0 :(得分:0)
对不起,不完全明白你想要的......但这是我的看法。
第一个情景:
为什么需要更新屏幕上的视图?
只需在viewWillAppear中更新。
否则,当您完成对该文本字段的编辑时,您可以让委托更新它。
情景2:
您需要在视图控制器之间建立链接,使用segues变得简单,设置为委托并传递信息。为什么要让它变得比它需要的更难
很多事情都有代表,文本字段等,你只是说这个类/ obj会为别的东西做些什么。
有许多关于代表的youTubes,即
http://www.youtube.com/watch?v=eNmZEXNQheE
有关详细信息,请参阅此帖子 - 它涵盖了您需要知道的所有内容
答案 1 :(得分:0)
1)你可以在不解雇VC2的情况下做到这一点,但这不是一个好主意。您不希望将“返回”归结为一个,因为,正如您所推测的那样,您实际上是在创建一个新的VC1实例,然后如果再次转向VC2,您也会创建一个新的实例。您将继续堆积越来越多的两个控制器实例,并且不会释放任何实例。
2)同样,你的直觉是正确的 - 你需要以某种方式获得对你投入屏幕的VC2实例的引用,以便将自己设置为委托。你不必有一个segue来做那个,你可以在代码中创建第二个控制器并做一个手动推送或presentViewController,但这在功能上,就像做一个segue一样。