【问题标题】:IBAction for a standard button doesn't work标准按钮的 IBAction 不起作用
【发布时间】:2016-11-04 09:17:26
【问题描述】:

这是基本的,应该开箱即用,所以我不知道为什么它不。我试图删除指向 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 方法

【问题讨论】:

    标签: objective-c swift xcode uibutton ibaction


    【解决方案1】:

    您是否尝试过检查是否启用了按钮交互及其父视图? 它是否被某些对象或其他视图重叠?

    我以前经历过这种情况,我只是检查了所有这些,它在一定程度上解决了问题。

    【讨论】:

      【解决方案2】:

      你说:

      我试图删除指向 IBAction 的链接并重新重写它

      所以...尝试在 Interface Builder 中删除连接,然后重新连接(您可能已经这样做了)

      另一件需要注意的事情。

      如果我在 Swift 3 中创建这样的方法:

          @IBAction func buttonClicked(sender: AnyObject) {
              print("hello")
          }
      

      然后尝试连接到那个,然后连接看起来像这样

      注意“with sender”部分,我没有添加它,但它是新的 Swift 3 参数命名的一部分。

      为避免这种情况,我必须将我的方法重命名为:

      @IBAction func buttonClicked(_ sender: AnyObject) {
          print("hello")
      }
      

      (注意发件人之前的_

      如果我然后重新连接:

      事情看起来和预期的一样。也许这也是咬你的原因?界面构建器正在寻找一个名为 onManClickedWithSender@IBAction,而您定义了一个名为 onManClicked@IBAction

      希望对你有所帮助。

      【讨论】:

      • 是的,我也从 IB 中删除了引用。可以看图,调用的是onManClicked方法,代码中也是onManClicked方法。 4 个按钮点击中的任何一个都不起作用。我编辑了我的帖子以显示如何添加此视图。可能这是问题所在?我是 iOS 新手,速度很快。
      • 您可以尝试将其重命名为onManClicked(_ sender: AnyObject)(注意_)
      • 是的,它显示警告“参数中的无关 '_':'sender' 没有关键字参数名称。你能看看我编辑过的帖子的结尾 - 可能是问题吗?
      • 嗯……你使用的是 Swift 2 还是 Swift 3
      • swift 2. 我不想重写整个项目并学习所有新功能,我只想完成它然后领跑 swift 3
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      相关资源
      最近更新 更多