首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用导航控制器在“`prepareForSegue`”中设置数据

用导航控制器在“`prepareForSegue`”中设置数据
EN

Stack Overflow用户
提问于 2015-02-28 23:55:03
回答 7查看 47.5K关注 0票数 75

我正在用Swift开发一个iOS应用程序。

我希望使用prepareForSegue函数从视图向另一个视图发送数据。

但是,我的目标视图前面有一个导航控制器,所以它不能工作。如何设置导航控制器中包含的VC上的数据?

EN

Stack Overflow用户

发布于 2019-08-29 23:50:31

在Swift 5

如果您不仅必须从SourceViewController到嵌入在UINavigationController中的DestinationViewController,而且还必须访问新的故事板,那么请执行以下操作.

  1. 在Interface中,在源ViewController旁边放置一个来自对象库的"Storyboard引用“对象,然后将一个segue拖到它上(例如,从SourceViewController视图上的一个按钮)。例如,将segue标识符命名为"ToOtherStoryboard“。
  2. 转到NavigationViewController,使用身份检查器给它一个故事板ID。"DestinationNavVC“就行了。
  3. 单击步骤1中创建的Storyboard引用图标,并在其属性检查器的“Referenced”字段中输入您在步骤2中为UINavigationController编写的Storyboard ID。这将创建从源到DestinationViewController的segue,而不管您在源ViewController的源文件中写了什么。这是因为对NaviationController的seguing将自动显示UINavigationController的根ViewController (第一个)。
  4. (可选)如果需要将数据与segue一起附加并将其发送到DestinationViewController中的属性,则需要在SourceViewController文件中的准备分段方法中编写以下代码: 重写函数准备(用于segue: UIStoryboardSegue,发件人: Any?) { if segue.identifier == "ToOtherStoryboard“{ let destinationNavVC = segue.destination as!UINavigationController让destinationVC = destinationNavVC.topController as!DestinationViewController destinationVC.name = nameTextField.text //例如destinationVC.occupation = occupationTextField.text } 如果您只是试图从一个PrepareForSegue移动到另一个ViewController,则不需要有一个ViewController,上面的方法将工作(w/o步骤3)。
  5. 在用于启动segue的按钮的IBAction出口方法中,您可以编写: performSegue(withIdentifer:"ToOtherStoryboard",发件人: self)
票数 2
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28788416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档