Xcode中的Control-drag提供了出口,但UIButton没有任何操作。为什么?

时间:2017-04-18 19:12:00

标签: ios swift xcode uibutton interface-builder

在我的应用程序中,我正在构建,我有一个导航控制器,其中一个视图控制器作为子视图连接(是正确的单词?)。我添加了一个UIButton并尝试将其拖动到我的视图控制器类文件中,但它只是将Outlet和Outlet集合作为我的选项,而不是Action。

Screenshot of what I'm seeing

这是一个非常简单的应用程序,我尝试删除我的Pod作为修复,但到目前为止没有运气。

我也尝试手动编写该功能并尝试将其连接回按钮,但无济于事。拖回工作区中的按钮不起作用,并且在测试应用程序时该功能未触发。这是我试过的代码:

@IBAction func tapSaveButton(_ sender: UIButton) {}

这可能很简单,所以我在这里缺少什么?

编辑:另外,这就是我的设置方式。我有一个带有UINavigationItem的导航控制器,它显示了一个子ViewController。有问题的按钮位于子ViewController中,我设置了一个新的swift文件来处理ViewController的类。我正在尝试将该按钮连接到该类文件中,这就是它无法正常工作的地方。

Screenshot of my storyboard

这是我的ViewController类的代码:

import Foundation
import UIKit
import KeychainSwift


class SettingsViewController : UIViewController {

    let keychain = KeychainSwift()

    @IBOutlet weak var APIKeyField: UITextField!
    @IBOutlet weak var WebSocketIPField: UITextField!
    @IBOutlet weak var SettingsSaveButton: UIButton!

    override func viewDidAppear(_ animated: Bool)  {
        super.viewDidAppear(animated)

        /* My other code, not related */
    }

    @IBAction func tapSaveButton(_ sender: UIButton) {

        // My button actions here.

    }

}

4 个答案:

答案 0 :(得分:2)

当然这是愚蠢的。我从按钮中删除了类,并且中提琴,它让我在我的Swift文件中创建一个动作。

答案 1 :(得分:1)

也许你试图连接到其他viewcontroller 请再次检查它是否是正确的viewcontroller并准确连接在故事板上

答案 2 :(得分:0)

右键单击故事板中的uibutton,您应该会看到“已发送事件”下的操作选项列表,最常用的是“Touch Up Inside”。

从你想要的那个(圆圈到侧面)拖动到你的视图控制器上,一切都应该正常工作。

编辑:为清楚起见,您甚至可以将“Touch Up Inside”拖动到您已经创建的func,只要它标记为

@IBAction ...
您的代码已经完成的

Here's an example of what I mean

After you control drag it looks like this

Select the view controller, and assign the class

答案 3 :(得分:0)

这也发生在我身上,当我在我的项目中添加本地化时,从那个时间本地添加了故事板,故事板按钮没有显示任何操作选项,只显示插座选项。