UISopOverController里面有UISplitViewController

时间:2011-12-24 17:58:03

标签: cocoa-touch uisplitviewcontroller uipopovercontroller

我必须在一个splitController的左侧显示一个popOver,我将popOver初始化为navigationController。但当我向我的应用程序崩溃时显示popOver。

Impostazioni *settings = [[Impostazioni alloc] initWithStyle:UITableViewStyleGrouped];
settings.title = NSLocalizedString(@"SETTINGS", nil);
settings.contentSizeForViewInPopover = kContentSizeOfPopOver;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:settings];
nav.navigationBar.tintColor = kTintColorNavigationBar;
nav.contentSizeForViewInPopover = kContentSizeOfPopOver;
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:nav];
[popOver presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

这是我的代码。有什么想法吗?

编辑:崩溃即使我只设置了一个viewController而不是SplitController:/并且使用一个空的ViewController:/

2 个答案:

答案 0 :(得分:2)

(可能是Error using UIPopoverController的副本。)

简而言之,您需要以某种方式保留UIPopoverController。通过为其定义属性或手动管理引用计数。使用ARC,后者不是一个选项,因此您需要存储引用。

答案 1 :(得分:0)

我相信你需要一个实例变量来保存popoverController。否则,在包含您显示的代码的方法完成后,没有任何内容会保留您的弹出窗口。与向视图添加子视图时不同,视图将保留子视图。 popovers不会发生同样的事情。