私は xcode に関してはまったくの初心者です (3 週間前に学習を開始しました)。PHP は私のものです。とにかく、誰かがテーブルビューのセルをタップしたときに、MasterViewController から DetailViewController に値を渡そうとしています ((json ファイルからのデータが入力されています)。問題は、最初に null 値を取得することです)。その後は完全に機能します。
これは私の 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);
}
}
いくつかのチュートリアルを経て、このコードのすべてを思いつきました。なぜそれが最初に機能せず、2回目のクリックで完全に機能するのか、私にはわかりません。どんな助けでも大歓迎です。