UIActionSheet _button valueforKey Crash in iOS8

Posted

技术标签:

【中文标题】UIActionSheet _button valueforKey Crash in iOS8【英文标题】: 【发布时间】:2014-08-27 16:17:48 【问题描述】:

ios 8 中,添加图像到 UIActionSheet's _button valueForKey. 的以下代码崩溃

UIActionSheet *action = [[UIActionSheet alloc ] initWithTitle:@"Choose Action!" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Start Auto Scroll", nil];

[[[action valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"autoScroll.png"] forState:UIControlStateNormal];

[action showInView:self.view];

崩溃日志是

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIActionSheet 0x7ff6d8c61030> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _buttons.'

我该如何解决?

【问题讨论】:

你有什么东西吗?? 【参考方案1】:

你所做的从来都是不合法的。您不能直接修改操作表的界面。如果您的代码曾经通过 App Store Guardians,那只是疏忽。

使用自定义的演示转换动画来制作一个看起来像操作表(或者实际上,看起来不像操作表)的视图控制器视图。在 iOS 7 和 8 中制作部分覆盖屏幕的呈现视图控制器视图既简单又合法。

【讨论】:

在 iOS 7 中,上面的代码很好。只发生在 iOS8 中。 听我说的。这不好。 iOS 8 已经(正确地)关闭了允许你做一些你不应该做的事情的漏洞。有一种简单而正确的方法可以做到这一点。我已经告诉你它是什么了。接受这个事实并继续前进。 我什至写了一篇文章来描述如何做到这一点,以及为 iOS 8 修改的可下载代码:radar.oreilly.com/2014/01/…

以上是关于UIActionSheet _button valueforKey Crash in iOS8的主要内容,如果未能解决你的问题,请参考以下文章

iOS UIActionSheet的基本使用

UIActionSheet 未在 iOS 8 中显示

iOS8开发之iOS8的UIAlertController

如何从带有 2 个按钮的表单单击按钮时发送 Ajax 请求?

UIActionSheet

从 UIActionSheet 访问 UIPopoverController