gpt4 book ai didi

ios - 全局变量与直接连接在 View Controller ios 之间传递数据

转载 作者:搜寻专家 更新时间:2023-11-01 05:42:21 26 4
gpt4 key购买 nike

我认为标题使用的术语不正确,所以我现在尝试澄清一下。

我有两个 View Controller ,我想在它们之间传递数据。 View 1 有一个 tableView,第二个 View 有一个 MKMapView。现在在我想要的相应 Controller 中,当您单击 View 1 中的单元格时,它会将您发送到 map 上该单元格指示的位置,例如。纽约手机会发送到纽约 map 。因此,我尝试在 didSelectRowAtIndexPath 中创建第二个 Controller 的实例,该实例会将数据传输给它。但是当我这样做时,它总是会在第二个 View Controller 中返回一个 nil 值。

所以我创建了一个 3rd swift 文件,它有一些全局变量,当我通过它们传输数据时,它工作得很好。为什么会这样?

干杯。

编辑:在我浏览第三个文件之前

ViewController 1 的代码

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var selectedCell = array[indexPath.row]

var viewController2 = ViewController2()

viewController2.textLabel1 = selectedCell.name
coord.textLabel2 = selectedCell.coordinate
}

ViewController 2 的代码

@IBOutlet weak var textLabel1: UILabel!
@IBOutlet weak var textLabel2: UILabel!

View Controller 2 的代码通过第三个文件

@IBOutlet weak var textLabel1: UILabel!
@IBOutlet weak var textLabel2: UILabel!
override func viewDidLoad() {
textLabel1.text = globalVar1
textLabel2.text = globalVar2

}

第三个文件中的代码

var globalVar1: String!
var globalVar2: String!

所以根据下面的评论,我认为在第一种方式中 textLabels 还没有被初始化,所以我分配给它们的值变成了 nil 值。这样对吗?如果是这样,您将如何正确执行第一种方法

最佳答案

如果我不得不猜测,我会的,因为我还不能评论更多信息(我遇到麻烦了)。

这是因为您正试图将其分配给 socket 。 socket 尚未设置,这意味着何时设置(我认为围绕 ViewDidLoad) socket 将设置为零。但是,如果对象尚未离开堆,则应保留这些属性。

关于ios - 全局变量与直接连接在 View Controller ios 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com