如何将prepareForSegue用于多个Tableview控制器

时间:2015-02-06 21:34:01

标签: ios objective-c uitableview

我有三个表格视图A,B,C。视图流程如下:

表A,点击一行--->表B,点击一行----表C

我使用以下方法将数据从主视图A发送到详细视图B.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showDetailFinal"]) {

    NSIndexPath *indexPath = [self->ListView_A indexPathForSelectedRow];
    DetailView_B *destViewController = segue.destinationViewController;

    destViewController.detailStatements = [dataArray objectAtIndex:indexPath.row];

}
}

我再次使用相同的方法将detailView_B中的数据发送到moreDetailView_C

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showDetailFinal"]) {

    NSIndexPath *indexPath = [self->DetailView_B indexPathForSelectedRow];
    More_DetailView_C *destViewController = segue.destinationViewController;

    destViewController.detailStatements = [dataArray objectAtIndex:indexPath.row];

}
}

我使用模态segues而不是push。问题是,当我从表A转到表B时,我看到表B中的数据。

但是当我从表C回到表B时,我在表B中看不到任何数据。

表B中的视图加载方法是:

- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"the name is %@",detailStatements.name);
// here when I come from table A, name is not null

//but when I come from table C,name is null.

}

是否可以对所有3个表视图使用公共segue标识符?

请告诉我处理此事的可能方法?

1 个答案:

答案 0 :(得分:0)

根据你的评论,你需要一个放松的segue,而不是你用来倒退的正常segue。

这可能会有助Storyboard: Control-drag from a bar button to the Exit item

或者向按钮添加操作以简单地关闭视图控制器。

相关问题