โดยปกติแล้ว การใช้งานปุ่ม (UIButton) นั่นจะใช้การอ้างอิง tag เพื่อให้ทราบว่ากดปุ่มไหน เช่น
let previousButton = UIButton(type: UIButtonType.Custom) previousButton.tag = 1 let backButton = UIButton(type: UIButtonType.Custom) backButton.tag = 2
เราสามารถ Get ค่า Tag มาเช็คได้ แต่ในบางครั้งการใช้ tag ก็ไม่สะดวก หากเรามีการใช้ Loop หรือ SubClass
ถ้าเราจะนำค่ามาใช้ ก็ต้องนำค่ใส่ Array ก่อน หรือต้องรู้ค่าที่แน่นอนว่า 1 คืออะไร 2 คืออะไร แต่ถ้าหากมีเยอะๆหละอาจ Loop มาหลายปุ่ม เราจะทำยังไง ??? สามารถส่งค่าจากปุ่มได้เลยหรือไม่ ???
คำตอบคือได้ แล้วก็ไม่ได้ยุ่งยากอะไรเลยเพียงเขียน Class ที่เป็นปุ่ม เพิ่มขึ้นมา แล้วสร้างตัวแปรไว้ เวลาเรียกใช้ก็เรียกตัวแปรนี้เลย เช่น
class myButton:UIButton { var myData:NSDictionary! }
เท่านี้ผมก็สามารถเรียกใช้ class myButton ได้แล้ว โดยที่ทุกอย่างเหมือน UIButton ทุกอย่าง เพียงแต่มี ตัวแปรเพิ่มขึ้นมาเพื่อเก็บค่า Dictionary เราก็สามารถใส่ค่าเข้าไปในปุ่ม แล้วก็สามารถส่งค่าออกมาจากปุ่มได้แล้ว ดังตังอย่าง
วิธีใส่ค่าเข้าไปในปุ่ม
let previousButton = myButton() previousButton.myData = // NSDictionary
วิธีนำค่ามาออกมาใช้
func previousClick(sender:myButton){ print(sender.myData) }
เท่านี้ก็สามารถเพิ่มความสะดวกมากขึ้นในการใช้งาน แต่ก็แล้วแต่สถานะการณ์ ควรเลือกใช้อย่างเหมาะสมนะครับ