1

我已经包含了<QuartzCore/QuartzCore.h>框架。

在 IBAction 我有这个:

- (IBAction)searchOptions:(id)sender {    
    FilterViewController *ctrl = [[FilterViewController alloc] initWithNibName:@"FilterViewController" bundle:nil];
    [UIView transitionFromView:self.view toView:ctrl.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];

    [self.navigationController pushViewController:ctrl animated:NO];
}

当我单击按钮时,页面会像您期望的那样卷曲:

当我单击下一个按钮(应该将页面向后卷曲)时,我收到此错误:

线程 1:EXC_BAD_ACCESS(代码=2,地址=0x8)

我认为问题在于上述动作(而不是展开动作)。

出了什么问题?

编辑:再读一小时后 - 可能是记忆问题吗?

4

2 回答 2

1

我不确定,但我认为不会UIView保留您传递给它的控制器。假设您使用的是 ARC,您可以尝试将其设置FilterViewController为属性。

即在标题中添加:

@class FilterViewController;

@interface YourViewController : UIViewController {
    FilterViewController *_filterViewController;
}

然后在实现中将其更改为:

 _filterViewController = [[FilterViewController alloc] initWithNibName:@"FilterViewController" bundle:nil];
 [UIView transitionFromView:self.view _filterViewController duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];
 [self.navigationController pushViewController:_filterViewController animated:NO];

以确保它被保留。

于 2013-04-15T13:48:21.667 回答
0

你不是真的必须做卷页效果吗?

[先试试这个]

- (IBAction)searchOptions:(id)sender { 
    FilterViewController *ctrl = [[FilterViewController alloc] init];
    ctrl.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    [self presentModalViewController:ctrl animated:YES];
    }
于 2013-04-15T12:32:12.270 回答