前提・実現したいこと
タイトルの表記と同じ内容になってしまうのですが、
UIButtonに別クラスの@objc funcをaddTargetしたのですが、
該当するUIButtonをタップしても、何の反応も起こりません。
どのようにすれば、別クラスの@objc funcをaddTargetすることができますでしょうか?
お手数ですが、よろしくお願いいたします。
該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view. 8 let btn = UIButton() 9 btn.frame = CGRect(x:0,y:0,width:100,height:100) 10 btn.backgroundColor = .green 11 btn.addTarget(testClass(), action: #selector(testClass.btnTapped), for: .touchUpInside) 12 self.view.addSubview(btn) 13 } 14 15} 16 17class testClass { 18 @objc func btnTapped(){ 19 print("testClass.btnTapped -> success") 20 } 21}
試したこと
viewDidLoad内にて
btn.addTarget(testClass(), action: #selector(testClass.btnTapped), for: .touchUpInside)
を下記内容に書き換えました。が、特になんの反応もありませんでした。
swift
1//1. 2let testClassInstance = testClass() 3btn.addTarget(testClassInstance, action: #selector(testClassInstance.btnTapped), for: .touchUpInside) 4 5//2. 6btn.addTarget(testClass(), action: #selector(testClass().btnTapped), for: .touchUpInside)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/09 13:50
2021/02/09 13:54