我有两个表视图控制器,一个包含所有美国州,另一个显示所选州的数据列表。我已经从视图控制器(不是单元格)在我的主故事板中设置了一个 segue,并给它一个标识符。由于超出本文范围的原因,我需要在不使用 prepareForSegue 方法的情况下以编程方式执行 segue。
源表视图控制器(AllStatesTableViewController)需要在tableview的didSelectRowAtIndexPath方法中执行segue。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
stateID = [statesDict objectForKey:cell.textLabel.text];
DetailTableViewController *destination = [[DetailTableViewController alloc] init];
stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateID andType:nil];
// at this point stateGauges is NOT nil
[destination setStateGauges:stateGauges];
[self performSegueWithIdentifier:@"sgShowStateDetail" sender:self];
}
segue 按预期执行,因为它导航到其目的地,但在目标表视图控制器中 stateGauges 为 nil。在源表视图控制器中它不是 nil。stateGuages 被声明为 DetailTableViewController 中的属性。显然我做错了什么。有什么建议么?
谢谢!五