使用 Segue 发送变量

2024-01-03

我正在开发一个简单的 iOS Swift 应用程序。该应用程序有 2 个视图控制器和一个已编程为连接到另一个视图控制器的按钮,如下所示:

@IBAction func pushMe(sender: AnyObject) {
        self.performSegueWithIdentifier("changeIt", sender: nil)
}

上面的方法有效,但我希望能够从当前视图控制器保存 2 个变量,并使它们可供我正在使用的视图控制器使用。所以我这样做了:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if segue.identifier == "changeIt" {
        var testVar1 = "Hello"
        var testVar2 = "World"
    }
}

在我要继续的视图控制器中添加了:

var testVar1:String!
var testVar2:String!

该应用程序可以运行,但是当我尝试访问 testVar1 或 testVar2 时,应用程序就会崩溃。我不确定为什么这不能按预期工作?


由于变量未初始化,因此您省略了目标视图控制器。使用下面的代码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if segue.identifier == "changeIt" {
        let dvc = segue.destinationViewController as! YourDestinationViewController
        dvc.testVar1 = "Hello"
        dvc.testVar2 = "World"
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Segue 发送变量 的相关文章

随机推荐

  • 如何通过node js执行存储过程

    我正在使用 db oracle 模块 node js 来查询表 SEARCH 命令 我能够成功获取记录 我需要执行存储过程 知道如何从 Node js 代码执行 Oracle 存储过程吗 我可以通过 db oracle 模块执行吗 或者有其
  • 以编程方式更改 UIButton 类型

    我有一个用 IB 制作的 UIButton 它设置为 圆角矩形 有一次 我想在代码中将类型更改为 自定义 这可能吗 我看到可以在创建时设置类型 但没有看到以后是否可以更改它 如果我没记错的话 不同的按钮类型由 UIButton 的不同 私有
  • 如何重置 virtualenv 和 pip?

    我在 Ubuntu 10 04 服务器上安装了 virtualenv 现在 当我执行 pip freeze 时 它 会显示以下软件包 Django 1 2 4 distribute 0 6 10 python apt 0 7 94 2ubu
  • Bootstrap 3 的 Angular Dialog 指令

    我们正在尝试从 Bootstrap 2 3 2 迁移到 Bootstrap 3 RC1 但遇到了问题AngularJS 对话框指令 http angular ui github io bootstrap dialog 单击相关按钮时 不会出
  • “调整调整大小”Android

    我有一个使用以下方式全屏运行的应用程序 getWindow setFlags WindowManager LayoutParams FLAG FULLSCREEN WindowManager LayoutParams FLAG FULLSC
  • 如何在我的在线站点中使数据库联机

    我通过右键单击 数据库 gt 任务 gt 脱机 在 Sql studio 中使数据库脱机 之后我的登录在 SQL Studio 中停止 我创建了另一个数据库用户来登录 但它显示我的数据库离线 当我过去右键单击我的数据库 gt 任务 gt 联
  • 如何解决 ASP.Net MVC 5 中的 glyphicons-halflings-regular.woff2 Err_Aborted 问题

    所以我有一个项目想要更改 BootStrap 的主题 所以 我的主题来自启动样本 https bootswatch com 并且选择的主题是Lumen https bootswatch com lumen bootstrap css 现在在
  • 在 .NET 2.0 中使用扩展方法?

    我想这样做 但出现此错误 错误1 无法定义新的扩展方法 因为编译器 所需类型 System Runtime CompilerServices ExtensionAttribute 找不到 您是否缺少对 System Core dll 的引用
  • OS X 中 PyDev 和外部库的问题

    我已经在 OS X 10 6 3 下的 Eclipse 3 5 1 中成功安装了最新版本的 PyDev 使用 python 2 6 1我在使已安装的库正常工作时遇到了麻烦 例如 我正在尝试使用 cx Oracle 库 如果从使用某些文本编辑
  • IE7不理解显示:inline-block

    有人可以帮我解决这个错误吗 使用 Firefox 可以正常工作 但使用 Internet Explorer 7 则不行 貌似不太明白display inline block html div class frame header h2 h2
  • 使用 ETag 但状态代码始终为 200 而不是 304

    当我尝试请求http graph facebook com me fields friends http graph facebook com me fields friends使用 ETag 我每次都会得到请求代码 200 我们做了两次连
  • Java Spring MVC 在浏览器中显示 PDF

    如何强制浏览器显示 pdf 而不是下载 这是控制器 RequestMapping value preview pdf method RequestMethod GET protected String preivewSection Http
  • 将静态子域添加到网站的推荐方法是什么?

    我想创建一些静态子域 例如 mycategory mydomain com 在一个相当小的网站中 并希望它指向该文件夹 mydomain com mycategory 不在浏览器地址栏中显示此类重定向 实现它的最简单方法是什么 我可以在 I
  • 吸收 HTML 元素的宽度

    我正在思考如何使用 html 元素来做到这一点 颜色没有什么特别的 所以我不需要把它们做成图像 请注意 文本是右对齐的 此外 颜色条从左侧上升到文本 因此 这可以通过让文本向右浮动 背景颜色为白色 并在其旁边设置一个背景颜色的 div 然后
  • 将事件监听器添加到未来的项目(没有 jQuery)[重复]

    这个问题在这里已经有答案了 很好奇我是否愿意接受用 Vanilla JS 编写列表应用程序的挑战 问题是事件监听器没有添加到新的列表项中 我向列表中的现有项目添加删除按钮 const deleteButton document queryS
  • 为什么数字的行为与有序的不同?

    Scala 有许多可以用作类型类的特征 例如Ordered and Numeric包装内scala math 例如 我可以使用编写一个通用方法Ordered像这样 def f T
  • Request.Url.Host 和 ApplicationPath 一次调用

    有什么办法可以得到HttpContext Current Request Url Host and HttpContext Current Request ApplicationPath一通电话 像 完整的应用程序网址 之类的东西 编辑 澄
  • 如何在 Swift 中将字典切片转换为字典

    我正在尝试转换myDictionary dropFirst 一本新字典缺少一个键 我不在乎是哪一个 dropFirst 返回一个切片 我想要一本与以下类型相同的新词典myDictionary 您可以将数组切片转换为数组 如下所示let ar
  • 类型“Observable<{}>”不可分配给类型“Observable”

    前言 我知道还有很多其他问题也有同样的错误 但我似乎仍然无法弄清楚我自己的问题 我有一个简单的服务和另一个简单的组件 我正在尝试非常严格地遵循 angular2 英雄教程 这是我的代码 位置 ts export class Location
  • 使用 Segue 发送变量

    我正在开发一个简单的 iOS Swift 应用程序 该应用程序有 2 个视图控制器和一个已编程为连接到另一个视图控制器的按钮 如下所示 IBAction func pushMe sender AnyObject self performSe