Ich habe eine 2 Klassen, wo ich uistackviews
von einer Klasse an andere übergeben. Ich möchte, dass die Steuerelemente in demselben stackview
erstellt werden. Daher übergebe ich die Ansicht in allen Parametern der Renderfunktion. Ich möchte auch, dass Ansicht mit der Aktion übergeben werden #selector
von uibutton
Pass benutzerdefinierte Parameter zu uibutton #Selektor swift 3
Klasse 1:
class ViewController: UIViewController {
func createbutton(parentview: UIStackView) {
let buttn = UIButton()
buttn.backgroundColor = .gray
buttn.setTitle("testttt", for: .normal)
buttn.frame.size.height = 30
buttn.frame.size.width = 40
buttn.addTarget(self, action: #selector(anotherbutton(parentview:)), for: .touchUpInside)
parentview.addArrangedSubview(buttn)
}
func anotherbutton(parentview: UIStackView) {
//another button here
}
func loadpage() {
print("loadpage")
}
}
Klasse 2:
class plugin : UIViewController {
let vw = ViewController()
override func viewDidLoad() {
super.viewDidLoad()
let parentview = getparentnode()
vw.createbutton(parentview: parentview)
}
func getparentnode() -> UIStackView {
let parentnode = UIStackView()
parentnode.axis = UILayoutConstraintAxis.vertical
parentnode.distribution = UIStackViewDistribution.equalSpacing
parentnode.alignment = UIStackViewAlignment.center
parentnode.spacing = 16.0
parentnode.tag = 50
parentnode.translatesAutoresizingMaskIntoConstraints = false;
self.view.addSubview(parentnode)
//Constraints
parentnode.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
parentnode.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
return parentnode
}
}
aber dies wirft einen Fehler unrecognized selector sent to instance 0x7b25e010'
So übergeben Sie die UIView in Aktion Wahlparameter? Danke für jede Hilfe
Sie können das nicht tun. –