导航控制器问题

时间:2012-01-28 23:54:36

标签: objective-c ios uinavigationcontroller modalviewcontroller presentmodalviewcontroller

我正在使用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];

2 个答案:

答案 0 :(得分:0)

您有两个导航堆栈 - 您将以模态方式呈现导航控制器

只需使用一个,如下:

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

答案 1 :(得分:0)

我想出了我的问题。我正在处理视图控制器,导航控制器就好了。但是使用表视图将新控制器推送到导航控制器堆栈。并且在我的表视图中处理行选择的switch语句缺少一个break语句,因此有两个案例被调用而不是只有一个用于该行,如果这有意义的话。