ios - 模态呈现的 UIPopoverController 在 iOS 5 中不起作用

标签 ios ipad uipopovercontroller ios5 ipad-2

首先,我们可以在这里谈谈 iOS 5 吗?还是仍在保密协议(protocol)中? 如果我们不能谈论它,请忽略我的问题。

通过使用安装了 iOS 5 的 iPad 测试我的应用程序,我发现我的“模态”弹出窗口存在问题:可以通过点击它的外部来关闭它,换句话说,它不是模态的!我不知道我做错了什么。

View Controller 使用以下代码打开弹出窗口:

AddProjectViewController *addProjectViewController = [[AddProjectViewController alloc] initWithStyle:UITableViewStyleGrouped];
[addProjectViewController setDelegate:self];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addProjectViewController];
[addProjectViewController release];

CGRect popoverFrame = [sender frame];

UIPopoverController *tempPopover = [[UIPopoverController alloc] initWithContentViewController:navController];
[tempPopover presentPopoverFromRect:popoverFrame inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.currentPopover = tempPopover;
[tempPopover release];
[navController release];

弹出框内的 View Controller 在它的 viewDidLoad 中有这一行。

- (void)viewDidLoad
{
    [self setModalInPopover:YES];

    // Do other stuff
}

有什么遗漏吗?

最佳答案

我找到了。 setModalInPopover 赋值必须在嵌入式 View Controller 的 viewDidAppear 方法内部,以使弹出框成为模态:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self setModalInPopover:YES];
}

关于ios - 模态呈现的 UIPopoverController 在 iOS 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806979/

相关文章:

xcode - IOS:弹出位置

ios - 神秘的 UIButton 崩溃

iphone - Flurry (SDK 4.2.4) 集成在 Xcode 5、iOS7 中不起作用

ipad - 什么是 iPad2 用户代理字符串?

swift - 如何将 UITableViewController 显示为 UIPopover ViewController

ios - 如何修复 "UIPopoverController is deprecated"警告?

ios - iOS 9 中的 UISearchController - UISearchBar 中的 TextField 剪切出导航项

ios - 如何调整属性字符串中符号图像的大小

iphone - 横向模式的 curl 效果

ios - 将 iPad 应用程序转换为 iPhone 应用程序?