こんにちは、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値が送信されます。
- 戻ってセルをもう一度クリックすると、以前に選択した値が送信されます。
ここで何が問題なのか知っている人はいますか?