ich so eine Klasse Funktion von meiner ViewController
Klasse nenne:Zugriff IBOutlet von einer anderen Klasse
Buttons.set_cornerRadius(10)
Ich habe eine andere .swift
Datei, wo ich die Funktion haben, erklärt:
class Buttons {
class func set_cornerRadius(radius: CGFloat) {
ViewController().someButton.layer.cornerRadius = radius
}
}
Wenn ich Wenn ich versuche, das auszuführen, wird der Fehler ausgegeben: "Unexpectedly found nil while unwrapping an optional Value"
.
Ich überprüft die Storyboard-IBOutlet Verbindungen bereits. Alles ist richtig verbunden.
Wenn ich die Methode in der gleichen Klasse wie folgt aufrufen, alles funktioniert:
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
}
}
Wie kann ich dieses Problem beheben? Was mache ich falsch/nicht richtig verstanden?
Vielen Dank im Voraus.
Sie müssen auf eine reale Instanz von 'ViewController' und nicht auf eine generische Instanziierung zugreifen – Ian
Können Sie mir ein Beispiel dafür geben, wie das geht? – smnk
Warum nicht einfach den Eckenradius in Ihrem ViewController einstellen? – Ian