相关疑难解决方法(0)

如何从另一个类访问IBOutlet

我想知道如何从另一个类访问类中声明的@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了故事板标签.我在网上搜索了很多关于这个但我找不到可以解决我问题的那个.请帮我解决这个问题.

谢谢.

iphone iboutlet ios swift

14
推荐指数
2
解决办法
1万
查看次数

从另一个类访问IBOutlet

我正在从我的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)

我怎样才能解决这个问题?我做错了什么/不理解对吗?

提前致谢.

null class iboutlet ios swift

5
推荐指数
1
解决办法
2676
查看次数

从 Swift 中的另一个类访问 IBOutlet

我是 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)

macos class nsviewcontroller iboutlet swift

5
推荐指数
0
解决办法
633
查看次数

标签 统计

iboutlet ×3

swift ×3

class ×2

ios ×2

iphone ×1

macos ×1

nsviewcontroller ×1

null ×1