我有一个tabbar应用程序,它有两个项目。这两个不同的tabbar项目包含2个不同的导航控制器。 第一个导航控制器工作正常,但当我想将视图推送到它生成的第二个导航 “应用程序试图将nil视图控制器推向目标”。
这是我将视图推送到第二个导航控制器的代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
TabNavAppDelegate *appDelegate = (TabNavAppDelegate *)[[UIApplication sharedApplication] delegate];
JJ_MapAnnotation *anno = (JJ_MapAnnotation *) [depotsArray objectAtIndex:indexPath.row];
if(self.secondViewController ==nil)
{
SecondViewController *secView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.secondViewController == secView;
[self.secondViewController.map addAnnotation:anno];
[secView release];
}
secondViewController.title = [NSString stringWithFormat:@"%@", [anno title]];
[appDelegate.navController pushViewController:secondViewController animated:YES];
答案 0 :(得分:0)
我敢打赌:
if(self.secondViewController ==nil)
self.secondViewController
不是nil
,也不是有效对象。可能有一些垃圾在那里。
当你进行这种动态分配时,确保你的对象在释放后变为零。否则你可以有这样的案例。
我希望它有所帮助
更新:
==
运算符在这里不正确;)
self.secondViewController == secView; //WRONG
self.secondViewController = secView; //OK