0

我正在使用presentModalViewController来演示一个导航控制器,其中的视图控制器的根已初始化为根。但是,当我将另一个视图控制器推到新的导航堆栈上时,需要将后退按钮按两次以返回到以模态方式呈现的原始视图。任何想法为什么会发生?新视图控制器是否有可能被推到原始导航控制器上,然后又被推到模态视图控制器中的导航控制器上?导航控制器的问题

我在原来的导航控制器代码:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addViewController]; 
[self.navigationController presentModalViewController:navController animated:YES]; 
[addViewController release]; 
[navController release]; 

然后我的模态视图里面的代码:

PriorityViewController *priorityView = [[PriorityViewController alloc] initWithNibName:@"PriorityView" bundle:nil]; 
priorityView.taskInfo = self.taskInfo; 
priorityView.isAdding = YES; 
[self.navigationController pushViewController:priorityView animated:YES]; 
[priorityView release]; 

回答

0

我想通了,我的问题。我正在处理视图控制器和导航控制器就好了。但是使用表格视图将新控制器推到导航控制器堆栈上。处理我的表视图中的行选择的switch语句缺少一个break语句,所以有两种情况被调用,而不仅仅是一个意思是该行,如果这是有道理的。

+1

所以它被打破,因为你没有“打破”它? :-) – Rayfleck 2012-01-29 02:18:22

+0

哈哈,那是一个很好的双关语。这是唯一的论坛,它将被赞赏。:)只要它的工作,我可以笑 – gurooj 2012-01-29 02:19:27

+1

在生活中,你可以笑,或者你可以哭。每个人都要选择。 – Rayfleck 2012-01-29 02:22:03

0

你有两个导航堆栈 - 您呈现导航控制器模态。

只需使用一个,像这样:

[self.navigationController presentModalViewController:addViewController animated:YES]; 
[addViewController release]; 
+0

出于某种原因,它认为我正在呈现与我创建的视图控制器不同的视图控制器。我有一个我推送的SpecificsViewController,以及一个我推送的TitleViewController,以及一个我推送的DurationViewController,都在同一视图中,没有问题。但是PriorityViewController会搞砸了。而控制台似乎认为我推动的是SpecificsViewController而不是PriorityViewController。 – gurooj 2012-01-29 00:24:06