在我的应用程序中,您单击一个显示另一个页面的按钮。每当您单击 View 上的按钮时,它都会崩溃并显示:
IBAction
在按钮上:
- (IBAction)searchOptions:(id)sender {
FilterViewController *ctrl = [[FilterViewController alloc] init];
[UIView transitionFromView:self.view toView:ctrl.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];
[self.navigationController pushViewController:ctrl animated:NO];
}
在 .h 文件中,我有一个前向类声明并设置属性:
#import "FilterViewController.h"
@class FilterViewController;
@property (strong) FilterViewController *filterViewController;
我不确定这里发生了什么!
最佳答案
假设您使用 ARC,您的 ctrl
实例永远不会保留,因此它会被释放和释放。您需要保持对该对象的强引用。
也许分配 ctrl
到filterViewController
属性(property)是你打算做的。
- (IBAction)searchOptions:(id)sender {
FilterViewController *ctrl = [[FilterViewController alloc] init];
[UIView transitionFromView:self.view toView:ctrl.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];
self.filterViewController = ctrl;
[self.navigationController pushViewController:ctrl animated:NO];
}
更新 :
没关系。我完全错过了你推
ctrl
的最后一行到 nab Controller 上。鉴于此,我最初的答案根本不正确。
关于ios - 发送到已释放实例的消息 - 视为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107183/