gpt4 book ai didi

ios - 将值传递给另一个类并将其显示在该 View Controller 上

转载 作者:行者123 更新时间:2023-11-28 13:41:57 24 4
gpt4 key购买 nike

我有两个 .swift 类。 Test.swiftStart.swift

Start.swift 有一个名为 outputPercentage 的函数。见下文。

var startClass = StartView()


class StartView: UIViewController {

@IBOutlet var testProg: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
testClass.sendpct()
}

func outputPercentage(pct: Int32) {
let pctTxt = String(pct)
print("Test Progress: ", pctTxt as Any)
testProg.text = "Test" //pctTxt! + " / 100"
}
}

testProg 是一个 UILabel

下面的函数位于 Test.swift 中,并将 Int32 值传递回 Start.swift 中的函数,如下所示:

var testClass = TestView()

class TestView {

func sendpct() {
var percentComplete : Int32 = 0;
startClass.outputPercentage(pct: percentComplete)
}

}

下面的行给我一个“Unexpected optional nil”错误。

testProg.text = pct_txt! + " / 100"

UILabel 设置正确,因为我可以在类中的其他地方设置它,只有当值从其他类传递时才会发生此错误。

如何将值正确输出到我的 UILabel

最佳答案

最好使用 Delegate 来处理你的情况。

Start.swift

import UIKit

protocol StartDelegate: class {
func outputPercentage(pct: Int32)
}

class StartView: UIViewController, StartDelegate {

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.
var test = Test()
test.startDelegate = self
test.sendpct()
}

// MARK: - Delegate Methods

func outputPercentage(pct: Int32) {
print(pct)
}

}

Test.swift

class Test {

weak var startDelegate: StartDelegate?

func sendpct() {
if let startDelegate = startDelegate {
var percentComplete : Int32 = 0;
startDelegate.outputPercentage(pct: percentComplete)
}
}

}

希望对您有所帮助!

关于ios - 将值传递给另一个类并将其显示在该 View Controller 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55896904/

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