在我的应用中,您点击了一个显示另一个页面的按钮。每当您单击视图上的按钮时,它都会崩溃并显示:
按钮上的
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;
我不确定这里发生了什么!
答案 0 :(得分:3)
假设您正在使用ARC,则永远不会保留ctrl
实例,因此它将被释放并取消分配。您需要对该对象保持强烈的引用。
或许你想要将ctrl
分配给filterViewController
属性。
- (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控制器上的最后一行。鉴于此,我的初步答案根本不正确。
答案 1 :(得分:0)
在- (IBAction)searchOptions:(id)sender
执行此操作
- (IBAction)searchOptions:(id)sender {
self.filterViewController = [[FilterViewController alloc] init];
[UIView transitionFromView:self.view self.filterViewController.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];
[self.navigationController pushViewController:self.filterViewController animated:NO];
}