将值传递给另一个 class 并将其显示在该视图控制器上
Passing a value to another class and displaying it on that view controller
我有两个 .swift
class。 Test.swift 和 Start.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[=40=中的函数],像这样:
var testClass = TestView()
class TestView {
func sendpct() {
var percentComplete : Int32 = 0;
startClass.outputPercentage(pct: percentComplete)
}
}
下面的行给我一个“意外的可选 nil”错误。
testProg.text = pct_txt! + " / 100"
UILabel
都设置正确,因为我可以在 class 的其他地方设置它,只有当值从另一个 class 传递时才会发生此错误。
如何将值正确输出到我的 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)
}
}
}
希望对您有所帮助!
我有两个 .swift
class。 Test.swift 和 Start.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[=40=中的函数],像这样:
var testClass = TestView()
class TestView {
func sendpct() {
var percentComplete : Int32 = 0;
startClass.outputPercentage(pct: percentComplete)
}
}
下面的行给我一个“意外的可选 nil”错误。
testProg.text = pct_txt! + " / 100"
UILabel
都设置正确,因为我可以在 class 的其他地方设置它,只有当值从另一个 class 传递时才会发生此错误。
如何将值正确输出到我的 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)
}
}
}
希望对您有所帮助!