UIButton 正在使应用程序崩溃

Posted

技术标签:

【中文标题】UIButton 正在使应用程序崩溃【英文标题】:UIButton is crashing the application 【发布时间】:2012-02-01 18:06:51 【问题描述】:

UIButton 添加到应用程序

UIButton *playButton = [UIButton buttonWithType:UIButtonTypeCustom];

[playButton addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside];

UIImage *image = [UIImage imageNamed:@"play.png"];

[playButton setImage:image forState:UIControlStateNormal];

当我运行应用程序时它崩溃并且消息是UIButtonView unrecognized selector

是否有异常断点

发现它崩溃了

[toolbar setItems:toolbarItems];

我认为我没有将UIButton 正确添加到toolbar

//Add buttons to the array

NSArray *toolbarItems = [NSArray arrayWithObjects: settingsButton, flexItem, rewind, flexItem, playButton, flexItem, pause, flexItem, modalBarButtonItem, nil];

 [toolbar setItems:toolbarItems];

解决这个问题的任何想法。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

问题是您不能直接将UIButton 粘贴到UIToolBar 中。您必须将UIButton 封装在UIBarButtonItem 的视图中,然后将您的自定义UIBarButtonItem 粘贴在UIToolBar 中。如果您不需要自定义外观或功能,您可能需要考虑使用标准 UIBarButtonItem,因为它看起来不错,无需您做太多工作。

有关示例,请参阅 Adding a UILabel to a UIToolbar。

【讨论】:

UIBarButtonItem *play = [[UIBarButtonItem alloc] initWithCustomView:playButton]; self.navigationItem.leftBarButtonItem = 播放;我做了这些更改,现在应用程序没有崩溃,但没有看到 uibutton【参考方案2】:

UIToolbar 包含 UIBarButtonItem 的实例,而不是 UIButton。如果您只需要自定义图像,请尝试:

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(play:)];

// Build your array and setItems: using "item" among other objects

[item release];

【讨论】:

需要uibutton,因为需要添加多个动作 在这种情况下,最简单的方法可能是简单地拥有一个仅调用所有所需选择器的包装方法。 问题已修复。感谢帮助。不过。

以上是关于UIButton 正在使应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

PrepareForSegue 方法使应用程序 iOS 崩溃

UIButton点击崩溃应用

在使用分配的 IBAction (UIButton) 点击 IBOutlet 后,iOS 应用程序崩溃,没有任何异常

尝试通过点击 UIBarButtonItem 进行共享时 iPad 崩溃

UIButton 图层样式使应用程序变慢

DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃