【发布时间】:2017-08-20 08:30:53
【问题描述】:
我真的不知道#selector 有什么问题:
func iterate() {
scrollView.subviews[0].subviews[0].addSubview(arrowButton)
arrowButton.addTarget(self, action: #selector(self.pressButton), for: .touchUpInside)
self.view.bringSubview(toFront: arrowButton)
}
func pressButton() {
print("pouet pouet pouet")
}
override func viewDidLoad() {
super.viewDidLoad()
iterate()
}
(不要介意布局问题,为了清楚起见,我已经删除了所有约束)
当我按下按钮时,什么也没有打印出来。
我对那个#selector 越来越疯狂了,这么重要的开发部分怎么还在使用这个 ObjC 垃圾?
【问题讨论】:
-
我看不出有什么问题。试试不带
self.的pressButton? -
我已经尝试过,我已经尝试过我可以在网上找到的所有语法,但没有任何效果......每次我必须使用 #selector 时,我都会浪费至少半天的时间,说真的......
-
其实问题可能不在选择器上。它可能完全在其他地方。检查是否调用了
viewDIdLoad。 -
由于我的 Button 和 viewDidLoad 中的所有内容都显示出来了,我想我的 viewDidLoad 被调用了,不是吗?我在里面放了一个 print() ,它也出现了。
-
好的。我建议你在 Xcode 中创建一个新项目,并尝试用尽可能短的代码重现这个问题。然后在这里发布。还包括您执行的其他步骤。