IBAction升级后未调用(SDK 8.1,Xcode 6)

时间:2014-11-20 20:34:56

标签: ios objective-c xcode

我正在使用IBAction为我的按钮设置动作。

按钮位于uitableview Cell。

这是我的代码:

-(IBAction)buttonAcceptClick:(id)sender
{
    UIButton *btn = (UIButton *) sender;
    UITableViewCell *cell;
    if ([NSProcessInfo instancesRespondToSelector:@selector(isOperatingSystemAtLeastVersion:)]) {
         cell = (UITableViewCell*)btn.superview.superview;
          NSLog(@"sdk 8.1");

    } else {
         cell = (UITableViewCell*)btn.superview.superview.superview;
        NSLog(@"sdk 7.1");
    }
    NSLog(@"buttonAcceptClick");

第二个按钮与第一个具有不同名称的按钮完全相同。

现在问题是Xcode 5和SDK 7.1中的一切都运行良好,但在我打开我的项目之后

在Xcode 6和SDK 8.1中,该程序在iPhone 4,5,6模拟器(sdks 7.1和8.1)上运行良好,

但不在真实设备上工作。和有趣的部分是按钮工作之一而不是其他

之一。

1 个答案:

答案 0 :(得分:2)

正如我在评论中所述,有更好(更可靠)的方法来获取UITableViewCell。这是一个:

- (IBAction)someButtonTapped:(id)sender
{
    CGPoint point = [sender convertPoint:CGPointZero toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    // do something with the cell...
}