Tôi có một ứng dụng có UITableView. UITableView này được điền bởi một NSMutableArray được giữ (như là một thuộc tính) trong appDelegate. Bạn có thể coi đây là một cửa sổ email. Nó liệt kê các tin nhắn trong một UITableViewCell được phân lớp. Khi một thông báo mới xuất hiện, tôi có tất cả các mã được thực hiện để tải xuống thư, thêm dữ liệu vào NSMutableArray của ứng dụngDelegate chứa tất cả thư. Mã này hoạt động tốt.Có gì với [UITableView reloadData]?
Bây giờ, khi thư mới được tải xuống và thêm vào mảng, tôi đang cố cập nhật UITableView của mình bằng mã sau, tuy nhiên - chức năng ủy nhiệm của UITableView không được gọi.
Điều kỳ lạ là khi tôi cuộn UITableView lên và xuống, các phương thức đại biểu cuối cùng cũng được gọi và phần đầu của tôi DO thay đổi (chúng hiển thị số lượng tin nhắn cho phần đó). Không phải họ cập nhật trong thời gian thực và không đợi cho cuộn của tôi kích hoạt làm mới? Ngoài ra, ô mới không bao giờ được thêm vào trong phần !!
Xin vui lòng trợ giúp !!
appdelegate Mã sản phẩm:
[self refreshMessagesDisplay]; //This is a call placed in the msg download method
-(void)refreshMessagesDisplay{
[self performSelectorOnMainThread:@selector(performMessageDisplay) withObject:nil waitUntilDone:NO];
}
-(void)performMessageDisplay{
[myMessagesView refresh];
}
UITableViewController Code:
-(void) refresh{
iPhone_PNPAppDelegate *mainDelegate = (iPhone_PNPAppDelegate *)[[UIApplication sharedApplication] delegate];
//self.messages is copied from appDelegate to get (old and) new messages.
self.messages=mainDelegate.messages;
//Some array manipulation takes place here.
[theTable reloadData];
[theTable setNeedsLayout]; //added out of desperation
[theTable setNeedsDisplay]; //added out of desperation
}
Dude tôi cảm thấy nỗi đau của bạn, cùng một vấn đề ở đây. –