更新:
我又遇到了这个问题,找到了另一种方法。如果显示控制器没有嵌入到导航控制器中,如果显示的控制器不是全屏的,它将被隐藏并变黑。方法 setModalPresentationStyle:UIModalPresentationCurrentContext 只能应用于导航控制器。因此,在 UINavigationController 中嵌入呈现控制器,将 UIModalPresentationCurrentContext 设置为它并呈现新的控制器 - 你将得到对话框控制器。
我正在展示搜索控制器,它具有推送堆栈详细控制器的 tableView。
详细控制器可以显示带有消息的视图控制器,它由小 UIView 和半透明背景组成。
问题:当最后一个视图控制器出现时,它下面的所有视图控制器都被隐藏并且控制器,那个呈现的搜索控制器变得可见。
这是我在做什么:
SearchViewController *viewController = [[SearchViewController alloc] initWithNibName:@"SearchViewController" bundle:nil];
viewController.data = dataArray;
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.navigationController setModalPresentationStyle:UIModalPresentationCurrentContext];
[self.navigationController presentViewController:navigationController animated:YES completion:nil];
比表推送详细视图:
DetailViewController *viewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[viewController setHidesBottomBarWhenPushed:YES];
viewController.dataItem = [data objectAtIndex:(NSUInteger) [indexPath row]];
[self.navigationController pushViewController:viewController animated:YES];
和详细视图呈现消息框:
MessageController *controller = [[MessageController alloc] initWithNibName:@"MessageController" bundle:nil];
controller.message = message;
[self presentViewController:controller animated:YES completion:nil];
当它被解除时,它下面的所有控制器都变得可见。
更新:
我想要的只是以模态方式呈现一个具有 uitableview 的视图控制器。从这个表中显示详细视图,将能够显示消息框。消息框必须是另一个视图控制器。并且当显示消息框时,所有前面的两个控制器都消失了。这就是问题所在。