UIButton默认为选中

时间:2019-06-04 17:42:12

标签: swift uibutton

加载视图控制器后,我需要立即调用IBAction方法。 我有用于按钮和IBAction的IBOutlet。默认情况下如何调用IBAction?

3 个答案:

答案 0 :(得分:0)

@IBAction func buttonPressed(_ sender: UIButton) {
    // do something
}

好的,在@IBAction内部被称为一些代码。让我们考虑一下。我们可以将这段代码移到其他地方,对吗?

但是在哪里?好的,这实际上取决于应用程序的逻辑和体系结构,但是例如,将其移至另一种方法。

func doSomething() {
    // do something
}

看到了吗?现在我们有了原来在另一个方法中起作用的代码,可以从@IBAction

调用
@IBAction func buttonPressed(_ sender: UIButton) {
    doSomething()
}

以及我们班上另一个地方

override func viewDidLoad() {
    super.viewDidLoad()
    doSomething()
}

答案 1 :(得分:0)

视图控制器实际上并没有特定的按钮,该按钮具有“ IBAction方法”。您可以在视图控制器中使用0、1、2或十二个按钮。因此,没有通用方法可以在视图控制器首次加载时为其调用“ IBAction方法”。

如果您有按钮方法:

@IBAction func buttonMethod(_ sender: Any?)

然后您可以从viewDidAppear调用该方法:

覆盖动态公共功能viewDidAppear(_动画:Bool){       buttonMethod(无)       //其余的viewDidAppear方法    }

请注意,viewDidAppear()会在重新显示视图控制器时立即被调用,因此,如果您使用模态覆盖它,然后发现它,则viewDidAppear()将再次被调用。相反,viewDidLoad()在视图控制器的生命周期中仅被调用一次。

答案 2 :(得分:0)

您可以将IBAction按钮用作viewDidLoad,在IBOutlet中调用sender方法。

class ViewController: UIViewController {
    @IBOutlet weak var submtButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        submtButtonAction(submtButton)
    }
    @IBAction func submtButtonAction(_ sender: Any) {

    }
}