嵌套的模态视图控制器在iOS6下给出了奇怪的消息?

时间:2012-11-20 23:03:03

标签: ios6 presentmodalviewcontroller

我正在从另一个模态视图控制器呈现一个模态视图控制器,这在iOS6之前的所有iOS版本下都能正常工作。但是在iOS6下我在模拟器中收到以下警告消息:

Warning: Attempt to present <UINavigationController: 0x14e93680> on <UINavigationController: 0x9fc6b70> while a presentation is in progress!

如果出现此警告,则不显示模态视图控制器。基本上我使用这样的代码来显示模态视图控制器:

WebAuthViewController *authController = [[WebAuthViewController alloc] initWithNibName:nil bundle:nil];
authController.challenge = challenge;
authController.delegate = self;
UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:authController];
[self presentModalViewController:aNavController animated:YES];
[aNavController release];
[authController release];

已经显示的视图是一个UIWebView,也以模态视图显示,如下所示:

WebViewController *addController = [[WebViewController alloc] initWithNibName:nil bundle:nil];
addController.urlToLoad = [NSURL URLWithString:urlString];
addController.delegate = self;

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addController];
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];

[navigationController release];
[addController release];

苹果文档仍然建议人们应该能够像这样堆叠导航控制器,所以我无法解释为什么会发生这种情况。任何提示?

2 个答案:

答案 0 :(得分:0)

视图控制器只能呈现单个视图控制器。这可能之前已被允许,但由于内部重组(可能在iOS6中已弃用presentModalViewController:animated:),可能会在iOS6中强制实施。是时候改变视图控制器的组织了。也许可以引入要呈现的导航控制器。如果已经有一个呈现的视图控制器,请将下一个视图控制器推送到导航堆栈。

答案 1 :(得分:0)

好的,那真是愚蠢 - 我忘记了curl的URL周围的引号,shell确实在后台执行了没有参数的命令。