如何在ios 7中检索详细信息披露按钮视图?

时间:2013-10-23 02:48:28

标签: iphone objective-c ipad ios7 xcode5

在这里,我试图在 ios7 中查看一个accessoryButton。 我的问题类似于这个,但是在我将ios 6应用程序升级到ios 7的不同版本中,

how can I retrieve detail disclosure buttons view

这在 ios 6 中工作得很好,但它在ios 7 中不起作用,我想知道为什么......这是我的代码:

- (UIView *)accessoryOfCell:(UITableViewCell *)tableViewCell
//Code inside method. I don't know how to quick indent so forget this {}

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    for (UIView *view in [tableViewCell subviews]) {
    //this loop 1 times, return view has class UITableViewCellScrollView
        for (UIView *subview in [view subviews]) {
        //this loop 3 times, return subview as:
        //UITableViewCellContentView, _UITableViewCellSeparatorView , UITableViewCellDetailDisclosureView
            NSLog(@"%@", subview.class);
            if ([view isKindOfClass:[UIButton class]]) {
                return view;
            }
        }
    }
}
else {
// in ios 6, this works super fine!
    for (UIView *view in [tableViewCell subviews]) {
        if ([view isKindOfClass:[UIButton class]]) {
            return view;
        }
    }
}
return nil;

因此,上面的代码不会像ios7中的UIButton那样返回任何内容。

注意:“tableViewCell.accessoryView”返回零,我想知道为什么,因为我选择了故事板中的详细信息披露。

请问好吗?

编辑说明: 我也可以像这样输入代码:

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    return ((UIView *)tableViewCell.subviews[0]).subviews[2];
} else { ... }

但我不想,因为这可能会导致更新应用程序在@ $$

中的痛苦

编辑说明#2: 在

中调用此方法
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
...
}

0 个答案:

没有答案