我有一个视图控制器是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