Binding action
ทำปุ่มให้กดได้ เริ่มจาก Controller ใหม่
เราเริ่มด้วยการสร้าง ViewController ให้หน้า Add new item
New File เลือก Cocoa Touch Class แล้วกด Next

ถัดมาตั้งชื่อ Controller ใหม่ของเราเป็น AddNewItemViewController โดยเลือกให้ Subclass เป็น UIViewController
ไม่เลือก Also create XIB file
Language เป็น Swift แล้วกด Next

เราต้องผูกหน้า Add new item ใน Main.storyboard ให้รู้ว่าต้องใช้ Controller ใหม่ที่เราเพิ่งสร้าง
โดยการเลือกหน้า Add new item ใน Main.storyboard จากนั้นเลือกที่ Identity Inspector กรอกชื่อ AddNewItemViewController ลงในช่อง Class แล้วกด enter

ผูก Action ปุ่มกับ ViewController
ให้เราเลือก Add new item ใน storyboard แล้วเปิด Assistant Editor ที่เป็นรูปวงกลมซ้อนกันด้านบนทางขวาของ Xcode
Xcode จะเปิด AddNewItemViewController ให้อัตโนมัติ

หาก Xcode ไม่สามารถแสดงได้ถูกต้องให้เราเลือกเองดังรูป

จากนั้นให้กด Ctrl ค้างแล้วลากจากปุ่ม Done เข้ามาที่ AddNewItemViewController
เลือก Connection เป็น Action ตั้งชื่อว่า doneButtonDidTap ตั้ง Type เป็น UIBarButtonItem จะปรากฎฟังก์ชั่นขึ้นที่ AddNewItemViewController

เราสามารถลากจาก code กลับไปที่ Storyboard ได้ โดยสร้างฟังก์ชั่นตามนี้
@IBAction func cancelButtonDidTap(_ sender: UIBarButtonItem) {
}
จากนั้นลากจากวงกลมเล็ก ๆ หน้าฟังก์ชั่นกลับไปที่ปุ่ม Cancel

ทดสอบว่า action ใช้งานได้โดยการ print log ออกมา
@IBAction func doneButtonDidTap(_ sender: UIBarButtonItem) {
print("done")
}
@IBAction func cancelButtonDidTap(_ sender: UIBarButtonItem) {
print("cancel")
}
เมื่อเรารันแล้วทดสอบกดปุ่มจะเห็น log ออกมา

โค้ดสุดท้ายของ AddNewItemViewController ในบทนี้
import UIKit
class AddNewItemViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func doneButtonDidTap(_ sender: UIBarButtonItem) {
print("done")
}
@IBAction func cancelButtonDidTap(_ sender: UIBarButtonItem) {
print("cancel")
}
}
ข้อควรระวัง
Action หรือ Outlet ที่เราใช้การผูกไปแล้ว ถ้า rename ทีหลังอาจทำให้แอพ Crash ได้เพราะเมื่อเรา rename ใน code ส่วนของ Storyboard จะยังใช้ชื่อเดิมอยู่ โดยวิธีที่ถูกต้องคือการคลิ๊กขวา เลือก Refactor -> Rename
ในกรณีที่มีปัญหาเราสามารถตรวจสอบได้จากที่ Document Outline หรือ Connections Inspector
ที่ Document Outline ให้คลิ๊กขวาที่ Add new item controller ถ้ามีปัญหาจะเจอสัญลักษณ์ Warning แก้โดยกด x เพื่อลบการเชื่อมออก

ที่ Connections Inspector ให้คลิ๊กที่ Add new item controller แล้วกดที่ Connections Inspector ถ้ามีปัญหาจะเจอสัญลักษณ์ Warning แก้โดยกด x เพื่อลบการเชื่อมออก

Last updated