การส่งค่าผ่านทาง UIButton

โดยปกติแล้ว การใช้งานปุ่ม (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)
}

เท่านี้ก็สามารถเพิ่มความสะดวกมากขึ้นในการใช้งาน แต่ก็แล้วแต่สถานะการณ์  ควรเลือกใช้อย่างเหมาะสมนะครับ