gpt4 book ai didi

ios - 我怎样才能访问另一个类中的 IBOutlet?

转载 作者:可可西里 更新时间:2023-11-01 02:02:48 25 4
gpt4 key购买 nike

我在这个问题中遇到了同样的错误:how can i access IBOutlet in another class? in swift但是当我在我的 Xcode 中写入时(对于带有 Swift 3 的 iOS 8)我有一个错误。

我的代码是这样的。我想通过一个按钮的操作编辑 amauntOut(是一个 UILabel),它位于 Convert_Table_Third_Cell 类中:

@IBAction func actionTextb(_ sender: Any) {
print("you writted \(String(describing: amauntEnter.text!))----")

//Convert_Table_Third_Cell.amauntOut.text = amauntEnter.text ----> is a tried
//var dash : abcViewController = storyBoard.instantiateViewControllerWithIdentifier("abc") as! abcViewController ----> is a tried
//var a = dash.getXYZ() ----> is a tried

var update: Convert_Table_Third_Cell = UIStoryboard.instantiateViewController(UIStoryboard) as! Convert_Table_Third_Cell
update.amauntOut.text = "hola"
}

我收到这个错误:

Instance member 'instantiateViewController' cannot be used on type 'UIStoryboard'; did you mean to use a value of this type instead?

有人可以帮助我吗?

这是头等舱

import UIKit

class Convert_Table_Second_Cell: UITableViewCell {

@IBOutlet var amauntEnter: UITextField!

var theNumber = getTheNumber()



@IBAction func actionTextb(_ sender: Any) {
print("you writted \(String(describing: amauntEnter.text!))----")

let storyboard = UIStoryboard.init(name: "convert ID", bundle: nil)
let update = storyboard.instantiateViewController(withIdentifier: "convert ID") as! Convert_Table_Third_Cell

update.amauntOut.text = "hola"


let aa = "hola hillel----------------------"
print(aa)
print(theNumber.usedParameters(ArrayOfNumbers: unitInOutlet, TipOfData: 3))

}

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
print("this is the valeu \(theNumber.hola)")
}

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

这是第二个我要编辑的标签在哪里

导入 UIKit

类 Convert_Table_Third_Cell:UITableViewCell {

@IBOutlet var amauntOut: UILabel!

@IBOutlet var UnityMeasurment: UILabel!


override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

最佳答案

您的方法不正确。 View Controller 在屏幕上显示时启动。一次只能显示一个 View Controller 对象。在您的代码中,您正在启动一个全新的 View Controller 并将文本设置为 socket 。所以那是行不通的。相反,您需要将文本设置为 View Controller 现有实例上的文本字段。

为此,在要接收文本字段内容更新的 View Controller 中,在通知中心注册以接收内容更新函数调用。

NotificationCenter.default.addObserver(self, selector: #selector(listnerFunction(_:)), name: NSNotification.Name(rawValue: "notificationName"), object: nil)

func listnerFunction(_ notification: NSNotification) {
if let data = notification.userInfo?["data"] as? String {
self.textField.text = data
}
}

然后在另一个 View Controller 中,如果你想发送文本到上面的 View Controller 并更新文本,只需将数据发布到通知中心

let data:[String: String] = ["data": "YourData"]
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "notificationName"), object: nil, userInfo: data)

关于ios - 我怎样才能访问另一个类中的 IBOutlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45109466/

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