【问题标题】:Passing data between view controllers without using segues [duplicate]在视图控制器之间传递数据而不使用 segues [重复]
【发布时间】:2014-02-28 10:11:40
【问题描述】:

我遇到以下问题:

  • 有两个视图控制器,viewController1viewController2

  • 在 viewController1 中,在 viewDidLoad 中以编程方式创建了一个 UIButton、UITextField,并且按钮在按下时会查看 viewController2。

viewController2 出现时是否有办法从 viewController1 中的 UITextField 获取数据。

谢谢你..

【问题讨论】:

  • 我遵循这个 SO 元答案,我认为您 (user3340000) 也应该:“Stack Overflow 用户需要做多少研究工作?” meta.stackexchange.com/questions/182266/…
  • 我学到了很多关于堆栈溢出的知识,我非常感谢这个网站为我提供的帮助。但我担心这个可怜的用户在他的第一个问题上的待遇很差,他立即被疏远和贬低。把一个新人扔到骨头上就这么难吗?

标签: ios objective-c uiviewcontroller segue


【解决方案1】:

有一种方法(或多种方法)可以做任何事情:)

但是我怀疑在您的示例中将字符串从 viewController1 中的 textField 设置为一个属性或者您放置在那里(在 viewController2 中)的某个方法会简单得多,例如

-(void)prepareToPresentHereIsYourStringFromMyTextField:(NSString *)textFieldContent;

这会简单得多的原因是 viewController1 已经导入了 viewController2 的头文件,所以它会立即“看到”这个选择器并能够调用它,并且 viewController1 之前已经有一个指向 viewController2 的指针它被提出。它可以像你问的那样以相反的方式完成,viewController2从viewController1“获取”或“获取”这个字符串,但这会更复杂一点,viewController2需要了解viewController1的一些信息,无论它是否导入整个标题或者你实现一个小协议,它需要一个指向 viewController1 的指针才能调用..

【讨论】:

  • 我没有投反对票,但我发现这是一个非常糟糕的答案。有很多文字可以解释将数据作为参数传递的简单功能。我见过的最长的方法名称,没有实际代码显示它正在完成
  • 感谢@SimonMcLoughlin,您当然有权发表意见。大部分文本都在解释为什么在这种情况下设置比获取更简单。也许是基础。至于一个实现,我猜很公平,提问者想要一个来自 UITextField 的 NSString 在 presentingViewController 中,大概他对这个 NSString 有一些意图,这超出了问题的范围。我觉得有趣的是,你觉得我用了太多的文字来解释这样一个简单的数据传递功能,但另一方面你想要一个示例实现。
猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 2021-03-17
  • 2016-04-06
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多