在调用委托方法之前取消分配UIViewController

时间:2013-11-15 09:30:21

标签: ios objective-c uiviewcontroller uisplitviewcontroller

我有PreviewControllerUIViewController,用于在全屏显示文档,它是UINavigationViewController的一部分。 它也是UISplitViewController的代表。

当它被推送时,它会隐藏masterView的{​​{1}}。 (方法1 - 3 - 2被称为)

当它消失时(通过按“后退”按钮),它会显示UISplitViewController的{​​{1}}。 (方法4-2被称为)

但有一种方法可以强制关闭masterView。在这种情况下,只有方法4被调用,UISplitViewControllerPreviewController发送消息并调用方法2之前被释放。

如何解决此问题?有没有办法强制PreviewController调用它的委托方法?或者我可以在方法4中保留UISplitViewController并在方法2(使用ARC)中释放它吗?

UISplitViewController

1 个答案:

答案 0 :(得分:1)

您目前没有对PreviewController实例进行任何强引用。 在您的界面中添加强类属性应该足够了:

@property (nonatomic, strong) PreviewController *previewVC;

然后使用:

创建实例
self.previewVC = [[PreviewController alloc] initWithNibName:@"PreviewController" bundle:nil];

这可确保在视图控制器处于活动状态时不会释放PreviewController(除非您自己发布)。