参考模态中的第二个子视图

Posted

技术标签:

【中文标题】参考模态中的第二个子视图【英文标题】:Reference 2nd subview in Modal 【发布时间】:2013-01-14 18:53:16 【问题描述】:

我有一个主/详细应用程序,我正在从我的主视图中显示一个模式。我的模态包含一个导航控制器和两个子视图。第一个子视图(登录)推送到第二个子视图(选择和初始化数据)。如何获取对第二个子视图的引用,以便在我的主视图中捕获它的委托调用?

目标是在用户登录后更新我的主表视图并从 JSON 网络服务初始化核心数据数据库。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

当您说“子视图”时,我假设您指的是模态呈现的导航控制器堆栈的第二个视图控制器。如果是这样,您无法在呈现之前从您的主视图中引用它,因为它尚未创建(模态 NavController 对此负责)。

你可以参考 first viewController - as

[[self presentedViewController] topViewController] 

将您自己作为委托传递给该控制器,然后该控制器将负责在创建第二个控制器时将您的委托引用向前传递。

不过,更简单地说,您可以将 back 从您的第二个 viewController 引用到演示设置:

[[self navigationController] presentingViewController]

这将使您获得对容器控制器的引用,从那里您可以轻松地获得对详细视图控制器的引用。

您可以使用该路由将数据返回到主表视图。

也可以在这里查看我的回答:How can I pass value between NavigationController and ViewController with StoryBoard?

【讨论】:

这正是我所需要的。谢谢。

以上是关于参考模态中的第二个子视图的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 6 中呈现模态视图

SwiftUI - 如何关闭假的模态视图 - 从里面的第二个视图,用关闭按钮?

当模态视图(第二个视图)被关闭时刷新 ViewController 中的核心数据 - Swift

模态视图的奇怪位置

Swift - TableView的协议代理无法正常工作 - 以模态呈现

模糊的视觉效果视图变成深灰色