我有一個視圖控制器是UIViewController的子類,它具有表視圖,表視圖中的每一行都鏈接到不同的xml url。 我做了一個解析器類是子類的NSOperation和實現的方法來解析每行作爲選擇的XML文件,NSOperationQueue避免將視圖控制器推入導航控制器堆棧?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self performSelectorOnMainThread:@selector(pushView) withObject:nil waitUntilDone:NO];
[self performSelectorInBackground:@selector(parseOperation:) withObject:indexPath];
}
- (void)pushView {
detailView = [[viewDetailsController alloc] initWithNibName:@"viewDetailsController" bundle:nil];
[self.navigationController pushViewController:detailView animated:YES];
}
- (void)parseOperation:(NSIndexPath *)indexPath {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.queue = [[NSOperationQueue alloc] init];
parserClass *parser = [[parserClass alloc] initWithParseUrl:[[self.arrayOfUrls objectAtIndex:indexPath.row]delegate:self];
[queue addOperation:parser];
[parser release];
[pool release];
}
分析器的偉大工程,但在其自定義的委託方法我稱之爲推視圖控制器在導航控制器堆棧頂部,視圖控制器將正確初始化,但新視圖控制器不會被推入屏幕。
我已經編輯了使用主線程和後臺線程的問題,而後臺線程正常工作以解析主線程只是初始化並且不推送視圖控制器。 問題是什麼?
我已經編輯我的代碼,如上,但仍然沒有工作。我不知道這個代碼有什麼問題? – Sandeep 2011-05-23 06:24:51
@瘋狂-36:看看我更新的答案是否有幫助。 – titaniumdecoy 2011-05-23 18:08:08
是的,這幫了我。我認爲這在解析完成後立即推送視圖控制器。但是如果我想在選中某行時立即推送視圖控制器,該怎麼辦?我的意思是如果我想推視圖控制器和同時解析XML ... – Sandeep 2011-05-25 07:59:47