Edited at

【Swift】button処理の書き方


IBActionはあまり使うべきでは無いらしい

おはこんにちばんわ!

マンハッタンコード新人エンジニアのがーたろーです!

皆さんはStoryboardを使って作成したボタンに処理をつけたいときは

どうやってますか?

僕は先週までならこうしていました。


ViewController.swift

import UIKit

class ViewController: UIViewController,MFMailComposeViewControllerDelegate {

@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()

@IBAction func button(_ sender: Any) {
//ここに処理を書く
}
}


storyboardに置かれているオブジェクトをcontrolで掴んでドロップしてました。

こういう書き方もあります。


ViewController.swift

import UIKit

import MessageUI

class ViewController: UIViewController,MFMailComposeViewControllerDelegate {

// IBOutletで書く
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()

//追記部分
button.addTarget(self, action: #selector(ViewController.buttonFunc), for: .touchUpInside)

}
//追記部分
@objc func buttonFunc() {
//処理記載
}

}


このようにIBActionで書かずに、IBOutletで一度定義してから、処理を別の場所で記載することもできます

ぜひ試してみてください!

もし役にたったらコメントください!

弊社、現在ファンを増やそう作戦中でファンの声をホームページに載せたいので

コメント乗っけてもいいよーって方いましたらどうぞよろしくお願いします!