我想知道如何从另一个类访问类中声明的@IBOutlet
例如,我有一个名为myfirstview的类
class MyFirstView: UIViewController {
@IBOutlet var lblred: UILabel! = UILabel()
}
Run Code Online (Sandbox Code Playgroud)
我想改变的文本lblred从另一个名为类MySecondView这是写在另一个.swift文件中:
class MySecondView: UIViewController {
func modify() {
let mfv = MyFirstView()
mfv.lblred.text = "Hello"
}
}
Run Code Online (Sandbox Code Playgroud)
但没有任何反应.
我已经连接lblred了故事板标签.我在网上搜索了很多关于这个但我找不到可以解决我问题的那个.请帮我解决这个问题.
谢谢.
我正在从我的ViewController类中调用类函数,如下所示:
Buttons.set_cornerRadius(10)
Run Code Online (Sandbox Code Playgroud)
我有另一个.swift文件,我声明了这个函数:
class Buttons {
class func set_cornerRadius(radius: CGFloat) {
ViewController().someButton.layer.cornerRadius = radius
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图运行它时会抛出错误:"Unexpectedly found nil while unwrapping an optional Value".
我已经检查了Storyboard-IBOutlet连接.一切都是正确的.
如果我像这样在同一个类中调用该方法,一切正常:
class ViewController: UIViewController {
@IBOutlet weak var someButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
set_cornerRadius(10)
}
func set_cornerRadius(radius: CGFloat) {
someButton.layer.cornerRadius = radius
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?我做错了什么/不理解对吗?
提前致谢.
我是 Swift 和 Mac App 的新手。所以我今天正在写一个 Mac 应用程序,在搜索了很多之后,我仍然困惑如何从另一个类访问 IBOutlet。
我正在使用 StoryBoard path mirror,我的 ViewController 中有两个 NSTextField 。我Path.swift为第一个 NSTextField创建了一个自定义类,path以了解输入的文本何时path发生更改。
class Path: NSTextField, NSTextFieldDelegate
{
override func drawRect(dirtyRect: NSRect)
{
super.drawRect(dirtyRect)
// Drawing code here.
self.delegate = self
}
var current = ""
override func controlTextDidChange(obj: NSNotification)
{
current = self.stringValue
println("Current is \(current)")
}
}
Run Code Online (Sandbox Code Playgroud)
ViewController.swift 中定义了两个出口
class ViewController: NSViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the …Run Code Online (Sandbox Code Playgroud)