iOS:与父视图控制器通信

Posted

技术标签:

【中文标题】iOS:与父视图控制器通信【英文标题】:iOS: Communicating to parent view controller 【发布时间】:2012-05-15 12:08:02 【问题描述】:

父视图控制器是一个单词表。子视图在屏幕上切换,让您玩这个词。用户可以“标记”单词(保存到用户默认值中)。父表现在应该如何发现该单词已被标记,以便我们可以显示一个漂亮的标志图标?

【问题讨论】:

【参考方案1】:

要将数据从子视图控制器传递回父视图控制器,您需要使用协议和委托

请参阅this SO 的Passing Data Back部分,了解有关在视图控制器之间来回传递信息的详细说明

您可以在子视图控制器中拥有boolean

当用户“标记”它时,您可以将该布尔值设置为 true。

如上所示,无论是否已标记,您都可以将值发送回父视图控制器

希望这会有所帮助。

【讨论】:

谢谢。我设置了一个委托接口,委托类有一个 wordIsFlagged 属性。 “孩子”可以读取或设置该属性,这有助于通信。【参考方案2】:

使用委托是最好的选择。让父母成为您孩子的代表。无论您想使用什么数据类型传递,在您的子 VC 中,无论是来自您的 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath() 如果您一次只允许选择一个单词,或者如果您允许多项选择,则使用按钮按下功能。调用你的委托方法来接收孩子发送的那些话,然后你可以用它做任何你想做的事情。

希望这会有所帮助。

【讨论】:

以上是关于iOS:与父视图控制器通信的主要内容,如果未能解决你的问题,请参考以下文章

与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖

iOS:使用 corebluetooth 库从不同的视图控制器进行通信

子视图约束到父视图 iOS

模型和控制器之间的通信 - iOS

ios自动布局视觉格式设置子视图与父视图大小相同,但垂直偏移

在 iOS 中等待多个网络异步调用