Cocoa touch UIPLITVIEWCONTROLLER内的UIPOPCOVERCONTROLLER

Cocoa touch UIPLITVIEWCONTROLLER内的UIPOPCOVERCONTROLLER,cocoa-touch,uisplitviewcontroller,uipopovercontroller,Cocoa Touch,Uisplitviewcontroller,Uipopovercontroller,我必须在一个splitController的左侧显示一个popOver,我使用navigationController初始化popOver。但是当我在我的应用程序崩溃时显示弹出窗口 Impostazioni *settings = [[Impostazioni alloc] initWithStyle:UITableViewStyleGrouped]; settings.title = NSLocalizedString(@"SETTINGS", nil); settings.contentSi

我必须在一个splitController的左侧显示一个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为空,我相信您需要一个实例变量来保存popoverController。否则,在包含您显示的代码的方法完成后,将不会保留您的popover。与将子视图添加到视图时不同,视图将保留该子视图。爆米花不会发生同样的情况。

(可能是的副本。)


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

您可以发布崩溃日志吗,可能在NSZombie启用的情况下,我已经将NSZombie设置为启用,但没有日志:/n您也在泄漏内存。你应该释放所有的设置、导航和popOver。我正在使用ARC和solved