我已经包含了 <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];
}
当我点击按钮时,页面会像您预期的那样卷起:
当我点击下一步按钮(它应该将页面向下 curl )时,我得到这个错误:
线程 1:EXC_BAD_ACCESS(代码=2,地址=0x8)
我认为问题在于上述操作(而不是展开操作)。
出了什么问题?
编辑:再阅读一个小时后 - 会不会是内存问题?
最佳答案
我不确定,但我认为 UIView
不会保留您传递给它的 Controller 。假设您使用的是 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];
确保它得到保留。
关于ios - quartz 动画错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014840/