嗨,我是 iOS 编程新手,我的要求是将表格单元格文本发送到详细视图并在详细视图中显示该文本。
主视图
我已将这些视图控制器与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];
}
现在我的问题是
- 当我单击任何单元格时,它会加载详细视图但发送空值。
- 当我返回并再次单击一个单元格时,它会发送我之前选择的值。
有人知道这里有什么问题吗?