我正在从另一个模态视图控制器呈现一个模态视图控制器,这在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];
苹果文档仍然建议人们应该能够像这样堆叠导航控制器,所以我无法解释为什么会发生这种情况。任何提示?
答案 0 :(得分:0)
视图控制器只能呈现单个视图控制器。这可能之前已被允许,但由于内部重组(可能在iOS6中已弃用presentModalViewController:animated:
),可能会在iOS6中强制实施。是时候改变视图控制器的组织了。也许可以引入要呈现的导航控制器。如果已经有一个呈现的视图控制器,请将下一个视图控制器推送到导航堆栈。
答案 1 :(得分:0)
好的,那真是愚蠢 - 我忘记了curl的URL周围的引号,shell确实在后台执行了没有参数的命令。