จะรู้ได้อย่างไรว่า uitableview มีเซลล์ที่เลือกอยู่

ฉันกำลังพัฒนา App และเมื่อถึงจุดหนึ่ง ฉันก็มีหลายมุมมองที่สามารถนำไปใช้ได้ ฉันต้องการทราบวิธีการมอบหมายภายนอก เช่น การดำเนินการว่า tableviews มีเซลล์ที่เลือกและเซลล์ใด

ฉันพยายามใช้: (NSIndexPath *)indexPathForSelectedRow แต่มันใช้งานไม่ได้ เพราะถ้าฉันไม่มีเซลล์ที่เลือก [(NSIndexPath *) row] จะส่งกลับ "0" และไม่ใช่ศูนย์

คุณช่วยกรุณาช่วยหน่อยได้ไหม??

ขอบคุณ..


person Frade    schedule 21.07.2011    source แหล่งที่มา
comment
คุณสามารถบันทึกดัชนีของแถวที่เลือกไว้ใน ivar ได้   -  person dasdom    schedule 21.07.2011
comment
ใช่ นั่นเป็นความคิด ฉันมี NSMUtablearray ที่เก็บเซลล์ที่เลือกไว้อยู่แล้ว เนื่องจากฉันไม่สามารถแทนที่วัตถุศูนย์ใน NSMUtablearray ได้ ฉันจึงไม่สามารถเริ่มต้นดัชนี i เป็นศูนย์ได้ ปัญหาคือการทราบว่า tableview ที่กำหนดมีเซลล์ที่เลือกหรือไม่ ทำให้ตัวเองชัดเจนเหรอ? ขอบคุณ   -  person Frade    schedule 21.07.2011


คำตอบ (1)


วิธีการของคุณถูกต้อง - indexPathForSelectedRow จะคืนค่าเป็นศูนย์หากไม่มีการเลือกเซลล์ แต่ถ้าคุณพยายามส่งข้อความไปยังอ็อบเจ็กต์ nil และใช้ค่าที่ส่งคืน มันจะเป็น 0 ดังนั้นคุณต้องทดสอบว่าค่าพาธเป็นศูนย์หรือไม่ ก่อนที่จะลองรับแถวของเซลล์จากนั้น:

NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
   row = [path row];
   ...
}
else{
 // No cell selected
}

ป.ล. nil เป็นเพียง typecasted 0 ดังนั้นในทางปฏิบัติพวกมันจึงเป็นสิ่งเดียวกัน

person Vladimir    schedule 21.07.2011