ModalViewController隐藏在视图下

时间:2012-12-11 06:02:53

标签: ios viewcontroller mfmailcomposeviewcontroller presentmodalviewcontroller uiwindow

我正在制作照片预览组件。现在我遇到了显示modalViewController的问题:当我想显示预览视图时,我正在做的是这样的:

UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
EKImageViewer *viewer = [[EKImageViewer alloc] initWithFrame:frame];
[window addSubview:viewer];
[window addSubview:viewer.preview];
[window addSubview:viewer.shareBtn];//A UIButton control

关闭预览视图时,我正在做的是这样的:

[viewer.shareBtn removeFromSuperview];
[viewer.preview removeFromSuperview];
[viewer removeFromSuperview];

在预览组件中点击shareBtn(UIButton)时,我想显示一个模态视图(MFMailComposeViewController):

MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentModalViewController:controller animated:YES];

发生了一些奇怪的事情:modalViewController显示在预览组件下面。只有当我关闭预览组件时,才能看到modalViewController。我有什么不对的吗?

1 个答案:

答案 0 :(得分:3)

不要在viewer之上添加window。而是添加你的rootViewController.view.那应该解决这个问题。如果可能,请尽量不要在rootViewController上添加除window之外的任何内容。无论您想添加什么,都可以添加到rootViewController