2008-12-07 48 views
14

Tôi mới dùng iPhone và Apple phát triển và làm việc trên ứng dụng đầu tiên của mình. Nó đơn giản chỉ với một TableView và một "xem chi tiết" khi một mục trong một bảng được chọn.Làm cách nào để làm mới chế độ xem bảng sau khi trở về từ "chế độ xem chi tiết?"

Điều tôi muốn làm là thay đổi màu nền của ô trong TableView dựa trên một số hành động được thực hiện trong "chế độ xem chi tiết" của tôi. Khi ứng dụng tải ban đầu, tôi tùy chỉnh màu theo phương pháp -cellForRowAtIndexPath:, nhưng khi người dùng điều hướng trở lại từ chế độ xem chi tiết của tôi thì chức năng đó không được gọi, vì vậy chế độ xem bảng của tôi không có màu sắc được cập nhật. Cách duy nhất để làm mới điều đó là thoát ứng dụng và khởi động lại. (Tôi vẫn chọn lựa với NSUserDefaults.)

Rõ ràng, tôi muốn chế độ xem bảng được làm mới khi chúng trở lại dạng xem chi tiết, nhưng tôi không biết cách tham chiếu đến ô và phương thức nào Để làm việc đó. Tôi giả sử nó nên đi trong -viewDidAppear, vì đó được gọi là tất cả mọi thứ xem được hiển thị.

Trả lời

34

Sử dụng [tableView reloadData] - điều đó sẽ làm cho việc xem bảng chạy mặc dù các hàng và tự xây dựng lại.

+0

Điều này không làm mới bảng nhìn như thể bạn đã khởi động lại ứng dụng. Điều gì là hoàn toàn làm mới như ứng dụng đã được bắt đầu và tableview đã được tạo ra tươi mới? – coolcool1994

9

Bạn thực sự nên làm điều đó trong viewWillAppear:.

Ngoài ra, bạn có thể nhận được các ô hiển thị của chế độ xem bảng bằng cách sử dụng phương thức visibleCells của nó. Do cách xem bảng hoạt động, các ô khác không tồn tại chút nào - việc cuộn sẽ kích hoạt phương thức ủy nhiệm và tạo các ô mới (hoặc loại bỏ các ô hiện có nếu bạn sử dụng dequeue...).

1

Tôi sẽ thêm rằng nếu nó đang ở chế độ xem chỉnh sửa, sau đó lưu một số thông tin đã sửa đổi được lưu trữ trong bảng của bạn, bạn phải có đại biểu phát hiện khi dữ liệu được lưu thực sự, sau đó tải lại chế độ xem bảng của bạn. viewWillAppear sẽ được kích hoạt mỗi khi khung nhìn của bạn xuất hiện. Những gì tôi nghĩ rằng bạn đang sau khi chỉ sau khi dữ liệu đã được thay đổi bạn muốn làm mới bảng.

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