【发布时间】:2023-03-06 11:49:02
【问题描述】:
我正在使用 swift 创建一个框架模块。点击按钮时需要弹出警报或 ViewController。
按钮以编程方式创建。当前按钮正在显示,但操作不起作用。下面是代码。
在框架类中
public class CreateAdminMenu {
let alertVC = AlertView()
public init() {
}
public func createMenuItem(itemTitle: String) -> UIButton{
let menuItem = UIButton(type: .system)
menuItem.frame = CGRect(x: 30, y: 30, width: 150, height: 100)
menuItem.backgroundColor = .blue
menuItem.setTitle(itemTitle, for: .normal)
menuItem.addTarget(self, action: #selector(menuItem_touchUpInside(sender:)), for: UIControl.Event.touchDown)
return menuItem
}
@IBAction func menuItem_touchUpInside(sender: UIButton) {
print("Menu Item tapped")
alertVC.showAlert()
}
}
class AlertView: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//self.showAlert()
}
func showAlert() {
let alert = UIAlertController(title: "Test Item", message: "button tapped", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)
}
}
在 App 中,ViewController
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let menu = CreateAdminMenu()
let item = menu.createMenuItem(itemTitle: "Test Item 1")
view.addSubview(item)
}
}
我错过了什么?
【问题讨论】: