当前位置: 首页 > 面试题库 >

快速访问另一个Viewcontroller的实例

连坚白
2023-03-14
问题内容

我正在尝试将数据从一个View Controller的文本字段传输到另一个视图的标签

如何从另一个View Controller的代码中调用View
Controller实例?我正在使用情节提要,因此从未在代码中创建视图控制器的实例吗?是否自动创建实例?他们叫什么名字?

谢谢你的帮助!


问题答案:

在您的项目中添加一个新的Cocoa Touch类文件,为其命名FirstViewController并在其中设置以下代码:

import UIKit

class FirstViewController: UIViewController {

    @IBOutlet weak var textField: UITextField! // FIXME: link this to the UITextField in the Storyboard!!!

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let controller = segue.destinationViewController as! SecondViewController
        controller.text = textField.text
    }

}

在您的项目中添加一个新的Cocoa Touch类文件,为其命名SecondViewController并在其中设置以下代码

import UIKit

class SecondViewController: UIViewController {

    var text: String?
    @IBOutlet weak var label: UILabel! // FIXME: link this to the UILabel in the Storyboard!!!

    override func viewDidLoad() {
        super.viewDidLoad()

        label.text = text
    }

}

在情节提要中,将第一个视图控制器嵌入到中UINavigationController。使用UIButton或将第一个视图控制器链接到第二个UIBarButtonItem。将第一个视图控制器FirstViewController的名称设置为,将第二个视图控制器的名称设置为SecondViewControllerUITextField在第一个视图控制器中创建一个。UILabel在第二个视图控制器中创建一个。链接文本框,并在标签各自的声明FirstViewControllerSecondViewController

2.如果包含标签的视图控制器可以调用(通过segue)包含文本字段的视图控制器…

在这里,这是一个完美的协议/代理案例。您可能会在StackOverflow上找到很多与此相关的东西。但是,这是一个粗糙的示例。

在您的项目中添加一个新的Cocoa Touch类文件,为其命名FirstViewController并在其中设置以下代码:

import UIKit

class FirstViewController: UIViewController, DetailsDelegate {

    @IBOutlet weak var label: UILabel! // FIXME: link this to the UILabel in the Storyboard

    func updateLabel(withString string: String?) {
        label.text = string
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let controller = segue.destinationViewController as! SecondViewController
        controller.delegate = self
    }

}

在您的项目中添加一个新的Cocoa / Cocoa Touch类文件,为其命名SecondViewController并在其中设置以下代码:

import UIKit

protocol DetailsDelegate: class {
    func updateLabel(withString string: String?)
}

class SecondViewController: UIViewController {

    weak var delegate: DetailsDelegate?
    @IBOutlet weak var textField: UITextField! // FIXME: link this to the UITextField in the Storyboard

    override func viewWillDisappear(animated: Bool) {
        super.viewWillDisappear(animated)

        delegate?.updateLabel(withString: textField.text)
    }

}

在情节提要中,将第一个视图控制器嵌入到中UINavigationController。使用UIButton或将第一个视图控制器链接到第二个UIBarButtonItem。将第一个视图控制器FirstViewController的名称设置为,将第二个视图控制器的名称设置为SecondViewControllerUILabel在第一个视图控制器中创建一个。UITextField在第二个视图控制器中创建一个。链接文本框,并在标签各自的声明FirstViewControllerSecondViewController



 类似资料:
  • 问题内容: 我有以下内容: 我如何从另一个ViewController 访问? 我需要访问此功能: 问题答案: 默认情况下,swift中的所有内容都是公开的,因此,如果您声明以下内容: 只要拥有它的实例,就可以访问它:

  • 问题内容: 我刚开始使用快速语言,并且知道这个问题是重复的。我发现了几个类似的问题和答案,但我无法弄清这个问题。 我想将ScandString变量的值从ScanViewController传递给ResultViewController。 ScanViewcontroller如下: ResultViewController如下: println(detectedString)没有给我任何结果。问题是

  • 尝试从同一命名空间中的另一个服务连接到一个服务。使用ClusterIP创建服务。创建服务后使用该Ip访问服务。请求有时成功,有时失败,我看到两个pod都启动并运行。以下是服务配置

  • 问题内容: 是否可以从Java中的另一个类访问一个类中变量的实例。 假设您在A类中具有以下条件: 我想对此类中的队列进行更改,然后可以使用它从另一个类中对其进行访问。 我如何从另一个类访问缓冲区的实例?可能吗? 问题答案: 添加吸气剂: 然后,如果您有Whatever的实例:

  • 我有一个方法可以创建一个带有节点和关系的图。我想将节点ID列表返回给调用方,以便后面的步骤可以快速定位这些节点并创建其他关系。我将无法返回节点实例。 在SQL世界中,我可以返回主键或唯一键。在neo4j的世界里,我应该回报什么?是否有一个唯一的节点标识符,我可以使用,而不会注定自己的地狱第七级?我有自己的身份证吗?由于我沉迷于SQL,我在学习Neo4J方法时遇到了困难。