为啥我的 UIButton 不起作用?

Posted

技术标签:

【中文标题】为啥我的 UIButton 不起作用?【英文标题】:Why won't my UIButton work?为什么我的 UIButton 不起作用? 【发布时间】:2012-03-21 09:37:20 【问题描述】:

我正在尝试使用 UIButton 调用 Sharekit,但是当我点击设备上运行的按钮时,没有任何反应。

这应该是我的视图控制器.h中的相关代码

#import "SHK.h"
#import "SHKFacebook.h"    
@interface ViewController : UIViewController <CaptureManagerDelegate>

    IBOutlet UIButton *upload; 


@property (nonatomic, retain) IBOutlet UIButton *upload;

-(IBAction)buttonPressed:(id)sender;

在我的视图控制器的 .m 中(使用此处示例中的代码 http://gazapps.com/wp/2011/07/17/basic-sharekit-customization)

@synthesize upload;

-(IBAction)buttonPressed:(id)sender 
    SHKItem *item;
    NSURL *url = [NSURL URLWithString:@"http://www.gazapps.com"];
    item = [SHKItem URL:url title:@"Checkout this site"];
    [SHKFacebook shareItem:item];


-(void)dealloc 

   [upload release];

除了尝试使用 UIButton 而不是 UIBarButton,我还严格按照 Sharekit 的安装说明进行操作。在我的故事板中,我按住 CTRL 键拖动到“第一响应者”并将我的按钮链接到 buttonPressed。我在 xcode 中没有收到任何警告或错误。但是当我点击按钮时没有任何反应。

【问题讨论】:

把日志放到这个方法里看看有没有被调用? 您是否已将您的“buttonPressed”方法的委托分配给您的按钮?如果是这样,在方法定义处放置断点并检查它是否被调用.. 你想分享到 facebook,没有操作表? Offtopic:您正在使用情节提要(因此您只是为 ios5 开发)并且您没有使用 ARC?为什么? 是的,我想跳过操作表,暂时只分享到 FB。我只为 iOS5 开发的原因不是为了故事板,而是因为我使用的面部检测仅适用于 iOS5。但我使用故事板是因为我的应用需要大量视图,而这似乎是组织它们的好方法。 【参考方案1】:

您的代码看起来不错。问题可能出在 nib 文件中。再次检查您的连接。 你还在用你的upload (UIButton) 属性做其他事情吗?你根本不需要那个 Outlet,如果你只想触发一个IBAction

您可以在buttonPressed 方法中放置一个断点,以查看连接是否设置正确。

【讨论】:

【参考方案2】:

你应该使用 SHKActionSheet

SHKActionSheet *actionSheet = [EDShareActionSheet actionSheetForItem:item];    
[actionSheet showFromToolbar:self.navigationController.toolbar];

【讨论】:

以上是关于为啥我的 UIButton 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的按钮不起作用?

UIButton 的 isEnabled 功能不起作用

自定义 UIButton - IBAction 不起作用

我的子视图中的 UIButton 不起作用

UIButton 动作不起作用

UIButton 子类@IBAction 不起作用