2011-07-21 29 views
5

Tôi đang phát triển một ứng dụng và tại một số điểm tôi có một số uitableview. Tôi muốn biết bên ngoài các phương thức đại biểu, một hành động chẳng hạn, nếu các bản xem trước có một ô được chọn và một ô nào.làm thế nào biết nếu uitableview có một tế bào được chọn

Tôi cố gắng để sử dụng: (NSIndexPath *)indexPathForSelectedRow nhưng nó không hoạt động, bởi vì nếu tôi không có một tế bào chọn [(NSIndexPath *) row] Thu nhập "0" và không nil

bạn có thể xin vui lòng cho bất kỳ sự giúp đỡ ??

cảm ơn ..

+0

Bạn có thể lưu chỉ mục của hàng đã chọn trong thanh ngang. – dasdom

+0

Vâng, đó là một ý tưởng. Tôi đã có một NSMUtablearray lưu trữ ô đã chọn. Vì tôi không thể thay thế một đối tượng nil trong NSMUtablearray, tôi không thể khởi tạo chỉ mục "i" thành không. Vì vậy, vấn đề là để biết nếu một tableview xác định có một tế bào được lựa chọn. tự làm rõ? cảm ơn – Frade

Trả lời

20

Phương pháp của bạn là đúng - indexPathForSelectedRow thực sự trả về nil nếu không có ô nào được chọn. Nhưng nếu bạn cố gắng gửi thông điệp tới đối tượng bằng không và sử dụng giá trị trả lại sẽ là 0, vì vậy bạn cần phải kiểm tra xem giá trị con đường là con số không hay không trước khi cố gắng để có được hàng di động của từ nó:

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

T.B. nil chỉ là một typecasted 0, vì vậy trong thực tế họ là những điều tương tự.

Các vấn đề liên quan