我尝试在iOS应用中制作Label,使用2个视图控制器在标签中显示"asdf"
。
我尝试运行testA()
功能但显示错误:ViewController.swift:15:9: Use of unresolved identifier 'testA'
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
testA()
}
}
在另一个控制器(TestViewController)中:
import UIKit
class TestViewController: UIViewController {
@IBOutlet weak var testLabel: UILabel!
func testA() {
testLabel.text = "asdf"
}
}
我的Main.storyboard链接到TestViewController类
我在google上进行了一些搜索,然后我尝试了继承,但没有显示错误,但是没有调用该函数。
import UIKit
class ViewController: TestViewController {
override func viewDidLoad() {
super.viewDidLoad()
testA()
}
}
错误已解决,但标签未更改为asdf
如何让ViewController.swift
能够调用位于另一个控制器testA()
中的函数TestViewController.swift
?
答案 0 :(得分:2)
您可以创建该类的对象,您可以按如下方式调用该函数。
let testVC = TestViewController()
现在使用对象
调用该函数testVC.testA()
或者更好的方法是创建一个class func
,如果你想从很多地方调用它并且它独立于对象。
class Helper {
class func testFunction() {
// Do something
}
}
在上面的场景中,您不必创建对象,因为它是一个类方法,所以请在下面调用它。
Helper.testFunction()
答案 1 :(得分:1)
您可以使用NSNotification,或者如果在第一个视图之后加载第二个视图,则可以使用委托。
答案 2 :(得分:0)
公开testA()
功能并调用
TestViewController.testA()
override func viewDidLoad()
ViewController
中的首先导入TestViewController。