我有一個UITableview頂部的導航欄。我有一個刷新按鈕作爲rightBarButtonItem。延遲隱藏導航右欄按鈕項
當刷新按鈕被點擊時,我想隱藏刷新按鈕,重新加載表格並顯示一個alertview。
-(void)refreshClicked{
self.navigationItem.rightBarButtonItem=nil;
app.networkActivityIndicatorVisible = YES;
[appDelegate readJSONData];
[self.tableView reloadData];
UIAlertView *infoAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"Kampanjerna är nu uppdaterade" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[infoAlert show];
[infoAlert release];
}
我發現當我的wifi信號變弱時,刷新按鈕不會立即隱藏,並且存在延遲。我擔心,如果使用3G,會有進一步的延遲,用戶可能會再次按下刷新按鈕,並認爲第一次沒有按下按鈕。
我的代碼有問題嗎?
幫助,將不勝感激
編輯-----------
-(void)refreshClicked{
self.navigationItem.rightBarButtonItem=nil;
app.networkActivityIndicatorVisible = YES;
// do data processing in the background
[self performSelectorInBackground:@selector(doBackgroundProcessing) withObject:self];
UIAlertView *infoAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"Kampanjerna är nu uppdaterade" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[infoAlert show];
[infoAlert release];
}
- (void)doBackgroundProcessing {
NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init];
[appDelegate readJSONData];
// must update the UI from the main thread only; equivalent to [self.tableView reloadData];
[self performSelectorOnMainThread:@selector(reloadData) withObject:self.tableView waitUntilDone:NO];
[pool release];
}
錯誤
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[campaignTableViewController reloadData]: unrecognized selector sent to instance 0x703eba0'
感謝您的回覆時完成。我是iphone開發新手。你能告訴我一個例子嗎? – Neelesh 2011-05-26 20:44:51
除非你打算換掉另一個按鈕,否則你可能應該採納@PenOne的建議。 – bosmacs 2011-05-26 21:42:47
這是我得到的錯誤。 *** __NSAutoreleaseNoPool():類NSURL的對象0x9c06910自動釋放,沒有池到位 - 只是漏水 – Neelesh 2011-05-26 23:10:53