我有一个主/详细应用程序,我正在从我的主视图中显示一个模态。我的模态包含一个导航控制器和两个子视图。第一个子视图(登录)推送到第二个子视图(选择并初始化数据)。如何获得对第二个子视图的引用,以便我可以在我的主人中捕获它的委托调用?
目标是在用户登录并从JSON Web服务初始化核心数据数据库后更新我的主表视图。
感谢您的帮助!
答案 0 :(得分:1)
当你说'subview'时,我认为你的意思是模态呈现的navigationController堆栈的第二个viewController。如果是这样的话,在你出现之前你不能从主视图中引用它,因为它尚未创建(模态NavController负责)。
你可以参考第一个 viewController - 作为
[[self presentedViewController] topViewController]
将自己作为代理传递给该控制器,然后该控制器负责在创建时将代理引用传递给第二个控制器。
更简单地说,您可以将返回引用到第二个viewController的呈现设置中:
[[self navigationController] presentingViewController]
这将引导您从容器控制器的引用中进行演示,您可以从中轻松获取对详细视图控件的引用。
您可以使用该路由将数据恢复到主表视图。
另见我的回答:
How can I pass value between NavigationController and ViewController with StoryBoard?