当谈到 xcode(3 周前开始学习)时,我是一个完全的菜鸟,PHP 是我的事。无论如何,当有人点击表格视图中的单元格((正在填充来自 json 文件的数据)的单元格时,我试图将值从 MasterViewController 传递给 DetailViewController。问题是我首先得到一个空值时间。之后它就完美地工作了。
这是我的 cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
FetchDetails* item = _feed.items[indexPath.row];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
UILabel *itemTitle = (UILabel *)[cell viewWithTag:101];
itemTitle.text = [NSString stringWithFormat:@"%@", item.prodTitle];
UILabel *itemDate = (UILabel *)[cell viewWithTag:102];
itemDate.text = [NSString stringWithFormat:@"%@", item.prodDate];
UILabel *itemUser = (UILabel *)[cell viewWithTag:103];
itemUser.text = [NSString stringWithFormat:@"by %@", item.prodUser];
UIImageView *itemThumb = (UIImageView *)[cell viewWithTag:100];
itemThumb.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString: item.prodImage]]];
return cell;
}
didSelectRowAtIndexPath。item.prodId 是 json 的一部分,但未显示在原型单元格上。这是我在 detailviewcontroller 上需要的值
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
FetchDetails* item = _feed.items[indexPath.row];
_selectedItem = [NSString stringWithFormat:@"%@", item.prodId];
}
和 prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showItemDetail"]) {
DetailViewController *destVieController = segue.destinationViewController;
destVieController.passedValue = _selectedItem;
NSLog(@"%@", _selectedItem);
}
}
在阅读了几个教程后,我想出了所有这些代码。我不知道为什么它第一次不起作用,并且在第二次点击时完美地工作,依此类推。任何帮助,将不胜感激。