显示模态视图而不显示模态视图

Posted

技术标签:

【中文标题】显示模态视图而不显示模态视图【英文标题】:Present Modal view over Modal view not showing 【发布时间】:2013-05-02 17:34:55 【问题描述】:

我查看了 SO,但找不到答案。我正在展示来自以下位置的模态视图:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     ICObservationEditController *controller = [[ICObservationEditController alloc] initWithObservation:[self.observations objectAtIndex:indexPath.row]];
     UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
     navController.navigationBar.barStyle = UIBarStyleBlackOpaque;
     navController.navigationBar.tintColor = [UIColor grayColor];
     [self.editController presentModalViewController:navController animated:YES];

一旦出现,作为一个选项,我想在 MessageUI 框架的顶部显示一条文本消息:

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText]) 
    NSLog(@"presented");

    //code here for text body

    controller.recipients = [NSArray arrayWithObjects:@"", nil];
    controller.messageComposeDelegate = self;
    [self.editController presentModalViewController:controller animated:YES];

调试器确认我收到了事件,但没有显示任何视图。代码是正确的,因为我在其他应用程序中使用了完全相同的代码,但尚未处于模态视图中。

【问题讨论】:

从已经以模态呈现的视图呈现模态视图不是一个好习惯。 developer.apple.com/library/ios/#featuredarticles/… 【参考方案1】:

UIKit 不允许这样做,但有一些变通方法。这个article 应该可以帮助你。

【讨论】:

以上是关于显示模态视图而不显示模态视图的主要内容,如果未能解决你的问题,请参考以下文章

检测模态视图何时显示

为模态视图显示透明背景

是否有显示模态视图指示器的标准方法?

presentViewController 不隐藏弹出框,弹出框出现在呈现的模态视图上

在 iOS 7 的模态视图或表单中显示 UIImagePickerController?

模态视图未显示在 didfinishpickingimage 中