我有一个主/详细应用程序,我正在从我的主视图中显示一个模式。我的模态包含一个导航控制器和两个子视图。第一个子视图(登录)推送到第二个子视图(选择和初始化数据)。如何获得对第二个子视图的引用,以便我可以在我的主视图中捕获它的委托调用?
目标是在用户登录后更新我的主表视图,并从 JSON Web 服务初始化核心数据数据库。
谢谢你的帮助!
我有一个主/详细应用程序,我正在从我的主视图中显示一个模式。我的模态包含一个导航控制器和两个子视图。第一个子视图(登录)推送到第二个子视图(选择和初始化数据)。如何获得对第二个子视图的引用,以便我可以在我的主视图中捕获它的委托调用?
目标是在用户登录后更新我的主表视图,并从 JSON Web 服务初始化核心数据数据库。
谢谢你的帮助!
当您说“子视图”时,我假设您指的是模态呈现的导航控制器堆栈的第二个视图控制器。如果是这样,您无法在呈现之前从您的主视图中引用它,因为它尚未创建(模态 NavController 对此负责)。
您可以参考第一个viewController - as
[[self presentedViewController] topViewController]
将您自己作为委托传递给该控制器,然后该控制器将负责在创建第二个控制器时将您的委托引用传递给第二个控制器。
更简单地说,您可以从第二个 viewController 中参考演示设置:
[[self navigationController] presentingViewController]
这将使您获得对容器控制器的引用,从那里您可以轻松地获得对详细视图控制器的引用。
您可以使用该路由将数据返回到主表视图。
另请参阅我的答案:
如何使用 StoryBoard 在 NavigationController 和 ViewController 之间传递值?