gpt4 book ai didi

ios - 使用 Swift 使用 Segue 发送数据

转载 作者:IT王子 更新时间:2023-10-29 05:02:22 25 4
gpt4 key购买 nike

我有两个 View Controller 和两个 View 。在我的第一个 View 中,我将变量“currentUser”设置为 false。我需要能够在第二个 View Controller 中将“currentUser”设置为 true。

当尝试从第二个 View 引用“currentUser”时,它没有将其拾取,因为“currentUser”是在第一个 View Controller 中定义的。

如何使用 segue 传递变量?

最佳答案

使用 segues 将任何 ViewController 的值设置为第二个

像这样:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if(segue.identifier == "yourIdentifierInStoryboard") {

let yourNextViewController = (segue.destinationViewController as yourNextViewControllerClass)
yourNextViewController.value = yourValue

在你的 NextViewController 类中。

class yourNextViewControllerClass {

var value:Int! // or whatever

您也可以通过编程方式调用它:

 self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self)

将 DestinationViewController 中的值设置回您的主要(第一个)ViewController

1. 实现一个协议(protocol),例如创建一个名为 protocol.swift 的文件。

    protocol changeUserValueDelegate {
func changeUser(toValue:Bool)
}

2.在您的第二个 View 上设置委托(delegate)

    class yourNextViewControllerClass {

var delegate:changeUserValueDelegate?

3. 设置委托(delegate)加载(prepareForSegue)

    if(segue.identifier == "yourIdentifierInStoryboard") {

var yourNextViewController = (segue.destinationViewController as yourNextViewControllerClass)
yourNextViewController.delegate = self

4.给FirstViewController添加Function

    func changeUser(toValue:Bool) {
self.currentUserValue = toValue
}

5. 从您的 SecondViewController 调用此函数

     delegate?.changeUser(true)

6. 在您的 FirstViewController 中设置委托(delegate)

    class FirstViewController: UIViewController, ChangeUserValueDelegate {

关于ios - 使用 Swift 使用 Segue 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089152/

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