我正在使用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)上运行良好,但不在真实设备上工作。和有趣的部分是按钮工作之一而不是其他
之一。
答案 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...
}