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 库从不同的视图控制器进行通信