1

こんにちは、iOS プログラミングは初めてです。私の要件は、テーブル セルのテキストを詳細ビューに送信し、そのテキストを詳細ビューに表示することです。

マスター ビュー

これらのView Controllerを に接続しましsegueた。私のマスター ビュー コントローラーは、以下の関数を使用してテーブル ビューにデータを追加しています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    cell.textLabel.text = [_types objectAtIndex:indexPath.row];

    return cell;
}

その後、以下の関数を使用して、現在選択されているテーブル ビュー セルのテキストを 1 つの変数に割り当てています。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    _type = [_types objectAtIndex:indexPath.row];
}

そして、選択したテーブル ビュー セルのデータを詳細ビュー コントローラーに渡すために、以下の関数を使用しました。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"CellSelection"])
    {
        CellSelectionViewController *controller = (CellSelectionViewController *)segue.destinationViewController;
        controller.msg = _type;
    }
}

詳細ビュー

詳細ビューでは、マスター ビューから送信された渡されたデータを警告しているだけです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test" message:_msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}

今私の問題は

  • セルをクリックすると、詳細ビ​​ューが読み込まれますが、null値が送信されます。
  • 戻ってセルをもう一度クリックすると、以前に選択した値が送信されます。

ここで何が問題なのか知っている人はいますか?

4

1 に答える 1