調用pushViewController這裏是我的代碼...無法獲得UIActivityIndicator露面,而在didSelectRowAtIndexPath方法
- (void) threadStartAnimating {
[activityIndicator startAnimating];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
activityIndicator=[[UIActivityIndicatorView alloc] init];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityIndicator.center=[self tableView].center;
[[self tableView] addSubview:activityIndicator];
[NSThread detachNewThreadSelector:@selector(threadStartAnimating) toTarget:self withObject:nil];
EventController *eventController = [[EventController alloc] init];
[eventController setEventID:[[lineItems objectAtIndex:[indexPath row]] objectForKey:@"view_event_button_param"]];
[activityIndicator stopAnimating];
[[self navigationController] pushViewController:eventController animated:YES];
}
事件控制器包含一個Web服務,需要幾秒鐘的加載。我能得到活動指示器顯示的唯一方法是如果我在那裏拋出一個無限循環...我發現了一堆提到將它放在一個單獨的線程中的例子,但它似乎不起作用。
那麼'EventController'從它的'init'方法從web服務加載東西呢?或者其他地方 – mattjgalloway 2012-01-10 22:21:16
是的,eventControllers viewDidLoad方法調用我的方法loadDataIntoView它調用Web服務 – 2012-01-10 22:36:35
然後看到我的答案。 – mattjgalloway 2012-01-10 22:41:48