关于 UITableView 点击 Cell pushviewcontroller 传值的问题

2015-06-02 15:25:10 +08:00
 v2Next
点击TableViewCell,Push到一个viewcontroller,push的那个viewcontroller里面的数据是要根据cell里面的数据而定的.我想问下,每个push后视图的数据都不同,那要怎么赋值传值?

我的表格页面叫Tab2ViewController,是用xib ListTableViewCell画的,push到的页面叫DetailViewController。

```
#pragma mark - TableView datasource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
static NSString *CellIdentifier = @"ListTableViewCell";
ListTableViewCell *cell = (ListTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(cell == nil)
{
NSArray *nibs=[[NSBundle mainBundle] loadNibNamed:@"ListTableViewCell" owner:self options:nil];
cell = (ListTableViewCell *)[nibs objectAtIndex:0];
[cell setValue:CellIdentifier forKey:@"reuseIdentifier"];

}
//**遍历respont**//
//**liatArray是从服务器返回的数据**//
NSMutableDictionary *tempDic = [listArray objectAtIndex:indexPath.row];

cell.timeLabel.text = [NSString stringWithFormat:@"%@", [tempDic objectForKey:@"bno"]]; // 时间

NSString *percentStr = [NSString stringWithFormat:@"%@", [tempDic objectForKey:@"apr"]];
cell.percentLabel.text = percentStr;

return cell;
}


#pragma mark - UITableView Delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// 我想要在DetailViewController里面显示数据
DetailViewController *detailViewController = [[DetailViewController alloc] init];
[self.navigationController pushViewController:detailViewController animated:YES];
}
```
5078 次点击
所在节点    iDev
6 条回复
hanangellove
2015-06-02 15:34:13 +08:00
你可以在didSelect方法中获取到当前点击的cell,然后把cell的属性赋给DetailController的属性
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"选中cell");
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];

DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.xxxproperty = cell.xxxxx;
[self.navigationController pushViewController:detailViewController animated:YES];
}
v2Next
2015-06-02 15:41:32 +08:00
@hanangellove 我试过不行。

我在didSecct 方法里直接给 detailViewController.percentString = @"hello";

然后在 DetailViewController 打印 self.percentString 都是空
serco
2015-06-02 15:46:09 +08:00
@v2Next 检查自己的代码,或者完整贴出来
black
2015-06-02 15:50:02 +08:00
@v2Next 你在 DetailViewController 的什么方法内打印的?
v2Next
2015-06-02 15:51:29 +08:00
@hanangellove 解决了 3Q
hanangellove
2015-06-03 09:54:33 +08:00
@v2Next 检查出什么问题了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX