Khi tôi có UITableView như một phần của bộ điều khiển hiển thị, tôi có thể tải lại để dữ liệu tôi đang xem xét thay đổi dữ liệu mới như thế nào. Chỉ cần gọi lại tải lại dường như không làm mới dữ liệu cho đến khi tôi cuộn nó.Làm thế nào để tải lại một UITableView Trong khi tôi đang xem nó
Trả lời
Gọi phương thức reloadData
làm mới dữ liệu ngay khi phương thức được gọi. Nó không chờ đợi cho bảng được cuộn. Đảm bảo nguồn dữ liệu (mảng hoặc từ điển hoặc bất cứ nơi nào bạn đã lưu các giá trị) được thay đổi trước khi bạn gọi reloadData
.
Bạn có làm mới dữ liệu khỏi chuỗi chính không? Nếu vậy, bạn cần phải gọi phương thức reloadData bằng cách sử dụng phương pháp sau đây:
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
Vì vậy, đối với một tableView nó sẽ là:
[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
Chỉ cần một bản cập nhật năm 2013, bạn cũng nên có thể tải lại dữ liệu, miễn là bạn sử dụng
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
GCD thật tuyệt vời!
Đây phải là câu trả lời được chấp nhận. Nếu bạn hy vọng cho reloadData đơn giản để thực sự làm mới giao diện người dùng mà không có bất kỳ loại tương tác nào, thì đây là cách để làm điều đó .. – Markus
Bạn có thể giải thích thêm lý do tại sao nó nên được thực thi trên luồng chính không? – jchnxu
Các mã sau đây giúp bạn để tải lại bảng trong khi bạn tìm kiếm rằng:
[self.tableView reloadData];
Thực hành kém để gọi những phương pháp đó – AlexeyVMP
Không có vẻ để làm việc với một tế bào xem bảng tùy chỉnh. Dữ liệu không thay đổi cho đến khi chế độ xem bảng được cuộn. Có thể tôi có lỗi trong phương thức ô xem bảng tùy chỉnh của mình. – Genericrich
Tôi cũng sử dụng ô tùy chỉnh. Công trình tuyệt vời cho tôi. Bạn phải đã bỏ lỡ một cái gì đó trong mã. Bạn có thể gửi mã không. có lẽ chúng ta có thể tìm thấy một cái gì đó – lostInTransit
Nếu bạn đang sử dụng một tập tin nib để thiết kế quan điểm của bạn, đừng quên kết nối bảng bạn đang gọi reloadData trên trong mã vào bảng trong ngòi bút của bạn. Nó xảy ra dễ dàng vì bạn cần kết nối đại biểu và nguồn dữ liệu. –