Binding action
Last updated
Last updated
เราเริ่มด้วยการสร้าง 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
ให้เราเลือก Add new item ใน storyboard แล้วเปิด Assistant Editor ที่เป็นรูปวงกลมซ้อนกันด้านบนทางขวาของ Xcode
Xcode จะเปิด AddNewItemViewController ให้อัตโนมัติ
หาก Xcode ไม่สามารถแสดงได้ถูกต้องให้เราเลือกเองดังรูป
จากนั้นให้กด Ctrl ค้างแล้วลากจากปุ่ม Done เข้ามาที่ AddNewItemViewController
เลือก Connection เป็น Action ตั้งชื่อว่า doneButtonDidTap ตั้ง Type เป็น UIBarButtonItem จะปรากฎฟังก์ชั่นขึ้นที่ AddNewItemViewController
@IBAction เป็นการระบุให้ Storyboard มองเห็น โดย @IBAction จะเห็นเป็น Action และ @IBOutlet จะเห็นเป็น Outlet
Action คือจุดที่รับ event จาก view เช่น รับ event จากการกดปุ่ม
Outlet คือการผูก view เพื่อ Set หรือ Get property จาก view นั้น เช่น ต้องการอ่านค่าจากช่อง TextField ที่ผู้ใช้กรอกเข้ามา
เราสามารถลากจาก code กลับไปที่ Storyboard ได้ โดยสร้างฟังก์ชั่นตามนี้
จากนั้นลากจากวงกลมเล็ก ๆ หน้าฟังก์ชั่นกลับไปที่ปุ่ม Cancel
ทดสอบว่า action ใช้งานได้โดยการ print log ออกมา
เมื่อเรารันแล้วทดสอบกดปุ่มจะเห็น log ออกมา
โค้ดสุดท้ายของ AddNewItemViewController ในบทนี้
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 เพื่อลบการเชื่อมออก