从NsMutablearray加载按钮值而不是字符串

时间:2014-01-19 11:55:46

标签: ios parsing uitableview parse-platform

希望你过得愉快,

根据NSMutableArray值将tableview单元格中的每个按钮设置为不同的值的最佳方法是什么?

我可以将值放入数组和NSlog中,并在xcode控制台中显示所有Url。当我点击我的应用程序中的按钮时,它只是从数组中为表视图中的所有按钮加载了字符串设置为的最后结果。

例如,当我点击下面的按钮代码时,它只会加载最后一个字符串值(我想将其更改为结果数组中的每个值),我理解这是字符串应该如何工作,因为它迭代了结果它会改变字符串但是如何设置下面的按钮代码来加载Array中的每个不同的URL而不是字符串值?

按钮代码是:

NSLog(@"detailsB %@", self.detailsB); //detailsB is a string value and on NSlog it will only show the last Url from the results  

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.detailsB]];  //sets all buttons as the last string value and it opens Safari fine with that one url

谢谢大家,非常感谢任何帮助,

杰拉德

2 个答案:

答案 0 :(得分:1)

如果您希望按钮代码从数组加载URL,使用当前单元格的行作为数组的索引,那么您实际上必须从数组加载URL。你的代码总是使用self.detailsB,我假设它是一个固定的URL。

首先,您需要确定按下了哪个单元格的按钮。然后你需要使用单元格的indexPath.row来索引你的URLS数组并获取相应的URL。

你有哪些问题?

答案 1 :(得分:0)

为所有单元格中的按钮创建单个IBAction方法。该操作方法首先会找出该按钮所属的indexPath,然后从您的数组中查找该indexPath的URL。

- (IBAction) cellButtonTapped: (UIButton *) sender;
{
  //convert the button's center coordinates to the table view's coordinate system.
  CGPoint viewCenter = [self.tableview convertPoint: sender.center 
    fromView: sender.superview];

  //Ask the table view which cell's index path contains that point.
  NSIndexPath *indexPath = [self.tableview indexPathForRowAtPoint: viewCenter];
  int row =  indexPath.row;

  //Now fetch the URL string for that row.
  NSString *theURLString = theURLSArray[row];

  //create an NSURL object from the string.
  NSURL *theURL = [NSURL URLWithString: theURLString];

  //Finally, invoke the URL.
  [[UIApplication sharedApplication] openURL: theURL];  
}