gpt4 book ai didi

ios - 将信息传递给模态视图 Controller

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:35 24 4
gpt4 key购买 nike

我在这里读了一些关于从 View Controller 传回数据的文章,我知道这肯定有一些禁忌,但我想询问以这种方式传递数据的最佳实践,并询问是否我在下面做的可以吗?

我有 3 个 View Controller (类 ViewControllerA、B 和 C),当用户单击按钮(从 A 或 B)时,它会使用以下命令将它们带到 C:

let vc = new ViewControllerC()
self.presentViewController(vc, animated: true, completion: nil)

向前传递数据所以上面的“self”是 A 或 B。我的想法是,如果我想向 C 发送一些信息,我可以只创建 C 的属性(例如字符串或 int 等)并在之前将其分配给上面我做了一个 presentViewController。是吗?

即 vc.propertyHere = "我的值(value)"

传回数据如果我想将 C 中发生的事情发回给 A 或 B,最佳做法是什么?要返回 A 或 B,我知道我可以这样做: self.dismissModalViewControllerAnimated(真)

我是否应该首先实例化 A 或 B(可能通过它们的基类型)并访问类似的属性以获得我想要传回的信息?例如,如果 A 和 B 都继承自某个类,我可以在该类上创建一个属性,然后从 C 访问/设置它。这是正确的做法吗?或者有更好的方法吗?即

     callingViewController.myProperty = "my value i'm passing back"

谢谢!

最佳答案

向前传递数据 - 您的实现很好。

传回数据 -

不要再次启动 A 和 B,这是我在新开发人员中看到的一个常见错误。 A 或 B 已经存在,你从 A/B 来到这个新的 Controller ,你只是想将一个值传回那个类。

这里使用的最佳实践是委托(delegate)设计模式。

步骤:

  1. 创建一个协议(protocol),声明要在 A/B 中调用的方法。

  2. 在名为委托(delegate)的 C 中实现一个属性。

  3. 在呈现 View C 之前,分配委托(delegate)。

  4. 每当您想将任何信息传递给 A 或 B 时调用委托(delegate)方法。

在此处的另一个 SO 答案中解释了实现委托(delegate):How do I create delegates in Objective-C?

关于ios - 将信息传递给模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24865674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com