加载视图控制器后,我需要立即调用IBAction方法。 我有用于按钮和IBAction的IBOutlet。默认情况下如何调用IBAction?
答案 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) {
}
}