动态添加的UITableViewDelegate方法不响应用户交互

时间:2014-12-18 08:47:06

标签: ios objective-c xcode uitableview

我目前正在开发一个iOS库,用于跟踪用户的互动,例如按钮点按,文本编辑等。

为了跟踪表格视图的行选择,我使用方法调配来包装tableView:didSelectRowAtIndexPath:委托方法。

当tableView:didSelectRowAtIndexPath:委托方法在使用该库的应用程序中定义时,它运行良好。

但是,当tableView:didSelectRowAtIndexPath:delegate方法未定义时,我将其动态添加到委托实例,但tableView:didSelectRowAtIndexPath:委托方法不会被表视图调用。

// Add an original tableView:didSelectRowAtIndexPath: if not exists.
if ( ! [delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)] )
{
    BOOL result = class_addMethod( [delegate class], @selector(tableView:didSelectRowAtIndexPath:), (IMP)tableViewDidSelectRowAtIndexPathIMP, types );
    if ( ! result )
        return;
}

当我手动调用添加的方法时,它会响应。

有什么想法吗?

0 个答案:

没有答案