私はUIButtonを作成する関数を持っています。私はそのクラスのオブジェクトを使って、同じクラスの中でそのメソッドを呼び出しています。クラスのオブジェクトから関数が呼び出された場合、UIを構築できません
オブジェクトを使用してその関数を呼び出すと、UIは作成されません。私がこのメソッドを呼び出すと、ちょうどself.createbutton()
ボタンが作成されます。
class myClass: UIViewController {
let mainview = UIStackView()
func createbutton() {
let loadpageview = UIStackView()
loadpageview.axis = UILayoutConstraintAxis.vertical
loadpageview.distribution = UIStackViewDistribution.equalSpacing
loadpageview.alignment = UIStackViewAlignment.center
loadpageview.tag = 30
loadpageview.spacing = 16.0
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(loginaction), for: .touchUpInside)
loadpageview.addArrangedSubview(buttn)
mainview.addArrangedSubview(loadpageview)
}
func mainviewlet() {
mainview.axis = UILayoutConstraintAxis.vertical
mainview.distribution = UIStackViewDistribution.equalSpacing
mainview.alignment = UIStackViewAlignment.center
mainview.spacing = 16.0
mainview.tag = 50
mainview.translatesAutoresizingMaskIntoConstraints = false;
self.view.addSubview(mainview)
}
}
私は上記のクラスのオブジェクトを作成し、createbutton()
を呼び出した場合、それは文句を言わないそれは私がメソッドを呼び出した場合、次のように、作品
override func viewDidLoad() {
super.viewDidLoad()
self.mainviewlet()
let pl = myClass()
pl.createbutton()
}
仕事:
はoverride func viewDidLoad() {
super.viewDidLoad()
self.mainviewlet()
self.createbutton()
}
何が間違っていますここに ?そのオブジェクトを使ってメソッドを呼び出すにはどうすればいいですか?さらに別のクラスから呼びます。それで私はこれが必要です。何か助けてくれてありがとう!
は、どのように私はそれが別のインスタンスで動作することができますか?出来ますか ? – SunShine