这是基本的,应该开箱即用,所以我没有任何线索,为什么它没有。我试图删除IBAction的链接并重新重写 - 日志没有显示它被点击。奇怪的。
这是代码:
@IBAction func onManClicked(sender: AnyObject) {
NSLog("onManClicked")
person.gender = 1
genderUpdate()
}
NSLog
部分从未触发过。
因此,ViewController
中的四个按钮都没有响应。
问题出在哪里?
这是我添加整个视图的方式 - 我认为这是问题所在。
let vc = PersonalDialog(nibName :"PersonalDialog", bundle: nil, section: section, position: position, person: Person())
vc.view.frame = UIScreen.mainScreen().bounds
parentVC.view.addSubview(vc.view)
我是iOS开发的新手,我不知道热门做得对 - 我现在明白我添加了一个子视图但没有为它添加控制器。可能。但是,它确实调用了viewDidAppear
方法
答案 0 :(得分:1)
您是否尝试过检查按钮交互是否已启用及其父视图? 它是否被某些对象或其他视图重叠?
我之前经历过这个,我刚检查了所有这些,它解决了这个问题。
答案 1 :(得分:0)
你说:
我尝试删除IBAction的链接并重新重写
所以...尝试在Interface Builder中删除连接,然后重新连接(你可能已经完成了)
另一件要注意的事情。
如果我在Swift 3中创建一个这样的方法:
@IBAction func buttonClicked(sender: AnyObject) {
print("hello")
}
然后尝试连接到那个,然后连接看起来像这个
注意"与发件人"部分,我没有添加,但它是新的Swift 3参数命名的一部分。
为避免这种情况,我必须将我的方法重命名为:
@IBAction func buttonClicked(_ sender: AnyObject) {
print("hello")
}
(在发件人之前注意_
)
如果我重新连接:
事情看起来像预期的那样。也许这也是你咬过的东西?接口构建器正在查找名为@IBAction
的{{1}},并且您定义了名为onManClickedWithSender
的{{1}}。
希望这会对你有所帮助。