xcode4.2 - Swift 从外部访问 Viewcontrollers 标签 class
xcode4.2 - Swift Accessing Viewcontrollers label from external class
从 AnotherClass 访问 ViewController: UIViewController 标签(这里:outlet called timerLabel)的问题在哪里。我要设置文字
class AnotherClass{
//[...]
func updateTimeLabel(){
// To Solve!!!*******
//class name is ViewController?
let myLabel = ViewController.timerLabel
myLabel.text = "HiDuEi"
}
//[...]
// error message is:
//Instance member 'timerLabel' cannot be used on type 'ViewController'
}
如何正确访问 ViewController class(称为 ViewController)并在那里访问我的插座(标签),称为定时器标签?
谢谢
ViewController
是类型,不是对象的实例。您需要以某种方式获得对 ViewController 实例 的引用,然后访问标签。例如
let viewController = ViewController()
viewController.timerLabel.text = "HiDuEi"
请注意,上面创建了一个新实例,很难说您的另一个 viewController 是在哪里创建的以及如何从您发布的代码访问它。
根据你的问题的解释,
您有一个 IBOutlet(只能通过实例访问)并且您正在尝试通过 Class (ViewController)
访问它
创建 ViewController 的对象,然后尝试更新 timerLabel 的文本
let vc = ViewController()
vc.timerLabel.text = "HiDuEi"
您需要为 class 喜欢的
创建一个委托
class ExternalClass{
weak var delegate:VCName?
func updateTimeLabel(){
// To Solve!!!*******
delegate?.timerLabel.text = "HiDuEi"
}
}
创建时
let ca = ExternalClass()
ca.delegate = self
您可以为您尝试从中访问标签的视图控制器分配一个标识符,实例化它,然后访问标签,如下所示:
var vc : ViewController = storyboard.instantiateViewControllerWithIdentifier("abc") as! ViewController
vc.timerLabel.text = "HiDuEi"
其中 "abc" 是您使用的标识符
从 AnotherClass 访问 ViewController: UIViewController 标签(这里:outlet called timerLabel)的问题在哪里。我要设置文字
class AnotherClass{
//[...]
func updateTimeLabel(){
// To Solve!!!*******
//class name is ViewController?
let myLabel = ViewController.timerLabel
myLabel.text = "HiDuEi"
}
//[...]
// error message is:
//Instance member 'timerLabel' cannot be used on type 'ViewController'
}
如何正确访问 ViewController class(称为 ViewController)并在那里访问我的插座(标签),称为定时器标签? 谢谢
ViewController
是类型,不是对象的实例。您需要以某种方式获得对 ViewController 实例 的引用,然后访问标签。例如
let viewController = ViewController()
viewController.timerLabel.text = "HiDuEi"
请注意,上面创建了一个新实例,很难说您的另一个 viewController 是在哪里创建的以及如何从您发布的代码访问它。
根据你的问题的解释, 您有一个 IBOutlet(只能通过实例访问)并且您正在尝试通过 Class (ViewController)
访问它创建 ViewController 的对象,然后尝试更新 timerLabel 的文本
let vc = ViewController()
vc.timerLabel.text = "HiDuEi"
您需要为 class 喜欢的
创建一个委托class ExternalClass{
weak var delegate:VCName?
func updateTimeLabel(){
// To Solve!!!*******
delegate?.timerLabel.text = "HiDuEi"
}
}
创建时
let ca = ExternalClass()
ca.delegate = self
您可以为您尝试从中访问标签的视图控制器分配一个标识符,实例化它,然后访问标签,如下所示:
var vc : ViewController = storyboard.instantiateViewControllerWithIdentifier("abc") as! ViewController
vc.timerLabel.text = "HiDuEi"
其中 "abc" 是您使用的标识符