0

第一个场景:

我有两个视图控制器

VC1 有一个按钮和一个标签

VC2 有一个按钮和一个文本字段

在 VC1 -> VC2 之间存在模态序列

当我运行这个 segue 时,我们将 VC1 设置为 VC2 的委托。

我们转到 VC2,填写文本字段,点击按钮,然后 VC2 被关闭。

在 VC1 上运行了一些委托方法,并填写了 VC1.label。

问题:有什么方法可以在不关闭 VC2 的情况下做到这一点。例如,如果 VC2.button 只是模态地将我们拉回来,或者假设它重新初始化视图控制器并且标签不会更改,则将我们滑回 VC1。你总是要关闭视图控制器吗

场景 2:

再次,两个视图控制器。

这次它反转了..所以我有

带有文本字段和按钮的 VC1

带有标签和按钮的 VC2

现在我们填写 VC1,我们希望它出现在 VC2 上。但是没有segue,他们就没有关系。有没有什么方法可以在没有一个初始 segue 的情况下使用委托在 VC 之间传递数据?这个 segue 要求使用特定于视图控制器的委托吗?我假设这是因为在其他情况下我们只是实例化对象,并使用它们的委托方法。但是对于视图控制器,我们希望引用一个已经创建的,而不是实例化第二个。

注意:我使用故事板

4

2 回答 2

0

对不起,不完全理解你想要什么..但这是我的看法。

第一个场景:

为什么需要更新不在屏幕上的视图?

只需在 viewWillAppear 中更新。

否则,您可以在完成编辑该文本字段时让委托更新它。

场景 2:

您需要视图控制器之间的链接,使用 segues 很容易,设置为委托并传递信息。为什么让它变得比需要的更难

很多东西都有代表、文本字段等,你只是说这个类/obj 会为别的东西做点什么。

有很多关于代表的youtube,即

http://www.youtube.com/watch?v=eNmZEXNQheE

有关更多信息,请参阅此堆栈帖子 - 它涵盖了您需要知道的所有内容

在视图控制器之间传递数据

于 2013-07-29T00:34:05.773 回答
0

1) 你可以在不关闭 VC2 的情况下做到这一点,但这不是一个好主意。您不想“返回”到一个,因为正如您推测的那样,您实际上是在创建 VC1 的一个新实例,然后如果您再次转到 VC2,那么您也在创建一个新实例。您将不断堆积越来越多的两个控制器实例,并且没有一个会被释放。

2) 同样,您的直觉是正确的——您需要以某种方式获取对您在屏幕上放置的 VC2 实例的引用,以便将自己设置为代表。您不必使用 segue 来执行此操作,您可以在代码中创建第二个控制器并执行手动推送或 presentViewController,但这在功能上与执行 segue 相同。

于 2013-07-29T01:09:14.930 回答