[iOS Dev] Insert and Delete Data in TableView (No Core Data)

วันนี้ผมขอเสนอ Case Study ง่ายๆ
ในการบอกแนวคิดในการ Insertion และ Deletion ข้อมูลใน TableView นะครับ

ข้อมูลที่ใช้ในโจทย์ข้อนี้จะเป็นแค่ NSMutableArray เท่านั้น
(แต่ถึงเวลาจริงๆ งานจริงๆ จะใช้ Core Data)

เป็น Project เล็กๆ ที่ทำทุกอย่างใน Controller นะครับ ...

DeletingTableViewViewController.h
ในไฟล์ .h ก็ไม่มีอะไรมากนะครับ ..
มี List ของข้อมูลซึ่งเป็น NSMutableArray และตัวแปรที่จะอ้างถึง TableView เพื่อทำการ reloadData

** แต่เราสามารถสร้าง ViewController ให้เป็น UITableView SubClasses ได้เลยครับ
     ถ้าทำแบบที่ว่า เราจะสามารถใช้ self.tableView ได้ทันที ... แต่กรณีนี้ผมสร้าง Project แบบ
     SingleView Application จึงต้องทำการสร้าง UITableView เอง

DeletingTableViewViewController.m

ในไฟล์ .m ส่วนแรก ก็ไม่มีอะไรมากนอกจากตั้งค่าเริ่มต้นให้กับข้อมูล และ ตั้งค่า UI ตอนเริ่มต้น โดยเพิ่ม UITableView ไปใน View และเพิ่มเติมอะไรนิดหน่อยที่ updateUI method

ส่วนต่อไปคือ DataSource Method ของ UITableView ที่เราเรียกใช้
ซึ่งในส่วนแรก เป็นแค่การเรียก CellForRowAtIndexPath และ numberOfRowInSection
ซึ่งผมจะไม่แสดงโค้ดตรงนี้ เพราะทุกคน น่าจะเป็นอยู่แล้ว มันไม่ได้ยากอะไร

สิ่งที่เราต้องรู้ก็คือ ...
เมื่อเราใช้โค้ดตรงนี้

จะมี method นึงใน Delegate ถูกเรียกทำงาน เพื่อรอ Response อยู่แล้ว เวลากดปุ่มนี้ นั่นคือ

- (void)setEditing:(BOOL)editing animated:(BOOL)animated;


นั่นคือ เมื่อกดปุ่ม Edit ทางด้านซ้าย Cell จะเลือกไปขวานิดหน่อย พร้อมมีเครื่องหมาย Delete

จากนั้นขั้นต่อไปเราต้องกำหนดว่า เมื่อ User กดปุ่ม Delete จะให้ทำอะไร ซึ่งก็มี Delegate Method ให้ใช้เหมือนกันครับ ... ตามนี้


ซึ่งใน method นี้เราจะทำการลบข้อมูลที่เลือกเลือกให้ลบ ออกจาก List ของข้อมูล
และให้ TableView ทำ Animation เวลาลบออกด้วย ซึ่งมีหลายรูปแบบนะ ลองเล่นดู

ส่วนเวลา Insert Item อย่างง่ายเนี่ย ไม่มีอะไรมากครับ ...
ของผมแค่กด Add แล้วมีการเพิ่ม Static Data เข้าไปเท่านั้น
** ผมสร้างปุ่มกด Add ตั้งแต่ updateUI แล้วนะครับ ลองย้อนไปดู


ถ้าจะมากกว่านี้ ก็ต้องสร้าง View Controller เข้ามา เพื่อทำการเพิ่มข้อมูล แล้วก็อีกยาวครับ ...
แต่หลักการง่ายๆ มันมีแค่นี้แหละ

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android