带参数的UIButton选择器方法或在按钮创建时定义选择器方法

时间:2015-06-15 22:28:53

标签: ios objective-c uibutton selector

我有一个表,其中每个行对象都可以有一个特定的内容(文本,带有URL的文本 - 结果是打开Safari中的链接 - 和图像)。

我所做的是为每个细节创建一个视图,但是例如对于带有URL的文本,我创建了一个带有选择器方法的按钮,我没有机会为该选择器设置URL参数 - 它始终显示最后创建的URL。

有没有办法让代码在按钮创建时打开链接? (我有正确的值。)

1 个答案:

答案 0 :(得分:0)

使用选择器方法中的public static string RemoveExtraWhitespace(string str) { var sb = new StringBuilder(); var prevIsWhitespace = false; foreach (var ch in str) { var isWhitespace = char.IsWhiteSpace(ch); if (prevIsWhitespace && isWhitespace) { continue; } sb.Append(ch); prevIsWhitespace = isWhitespace; } return sb.ToString(); } 参数找到与点击按钮关联的行,然后获取该项目的关联URL。

您的选择器方法应如下所示:

UIButton *sender

如果您需要访问按下按钮的单元格,也可以使用- (void)didTapLinkButtonInCell:(UIButton *)sender { CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView]; NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition]; // If you have the items of your table in an array named 'items', for example NSLog("Clicked URL is %@". self.items[indexPath.row].url); }