1

在我的应用程序中,您单击一个显示另一个页面的按钮。每当您单击视图上的按钮时,它都会崩溃并显示:

图像

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;

我不确定这里发生了什么!

4

2 回答 2

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 控制器的最后一行。鉴于此,我最初的答案根本不正确。

于 2013-04-19T14:44:24.573 回答
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];
}
于 2013-04-19T14:45:41.593 回答