ios - 缩放弹跳 + 导航栏后退按钮点击 = 应用程序崩溃

标签 ios xcode uiscrollview zooming backbarbuttonitem

今天我的应用程序崩溃了,我知道为什么了。 我有一个 UIViewController(图片类),上面有一个 ScrollView 和一个 ImageView。

@property (nonatomic, retain) IBOutlet UIScrollView *scrollview;
@property (nonatomic, retain) IBOutlet UIImageView *imageview;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;  

这是我通过 pushViewController:pic animated:YES 调用的第三个 View

这些是我的 ScrollView 配置(没有 initWithFrame):

[scrollview setBackgroundColor:[UIColor blackColor]];
[scrollview setShowsVerticalScrollIndicator:NO];
[scrollview setShowsHorizontalScrollIndicator:NO];
[scrollview setContentSize:scrollview.frame.size];
[scrollview setAlwaysBounceVertical:YES];
[scrollview setAlwaysBounceHorizontal:YES];
#warning BouncesZoom + BackButton = App Crash!
scrollview.bouncesZoom = YES;
scrollview.decelerationRate = UIScrollViewDecelerationRateFast;
[scrollview setDelegate:self]; 

所以现在我放大,当我停止拖动图片时,图片会重新调整为 minimumSize。 如果我现在再次放大,按住拖动,用无名指按下导航 Controller 栏的后退按钮,应用程序会崩溃:

2011-11-08 16:48:45.572 Archiv[1319:707] *** -[Picture respondsToSelector:]: message sent to deallocated instance 0x44e3960

你能帮帮我吗?请不要告诉我关闭 bounceZoom。 $h@rky

最佳答案

已解决。

问题是 scrollview-delegate 触发事件反弹但对象已经释放。删除委托(delegate),一切都很好。

- (void)viewWillDisappear:(BOOL)animated{    
    [scrollview setDelegate:nil];
}

亲切的问候。鲨鱼

关于ios - 缩放弹跳 + 导航栏后退按钮点击 = 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053333/

相关文章:

c++ - max和fmax的区别(跨平台编译)

ios - Pinterest IOS SDK getBoardPins 响应代码=-1011 "Request failed: bad request (400)"

ios - 如何在后台捕获由推送通知触发的 iOS 位置?

objective-c - 应有 Root View Controller 控制台的应用程序

有人可以解释这个 C 错误消息吗?

ios - ios(Xamarin)中的奇怪行为UIButton

iphone - 如何更改文本字段特定长度的按钮背景?

iOS Swift 动画 - 将图像移动到新位置

ios - 如何在 Swift 中设置 UIScrollView 高度

iOS - 不同的 ViewControllers - 如何加载它们?