如何为多个 Tableview 控制器使用 prepareForSegue
How to use prepareForSegue for multiple Tableview Controllers
我有三个 table 视图 A、B、C。观看流程是这样的:
table A,点击一行--->table B,点击一行----Table 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];
}
}
我正在使用模态转场而不是推送。问题是,当我从 table A 转到 table B 时,我在 table B 中看到数据。
但是当我从table C 回到table B 时,我在table B 中没有看到任何数据。
tableB 中的视图加载方法是:
- (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 个 table 视图使用通用的 segue 标识符?
请告诉我可能的处理方法?
根据您的评论,您需要一个放松转场,而不是您用于倒退的正常转场。
这可能会有所帮助 Storyboard: Control-drag from a bar button to the Exit item
或者向按钮添加一个操作以简单地关闭视图控制器。
我有三个 table 视图 A、B、C。观看流程是这样的:
table A,点击一行--->table B,点击一行----Table 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];
}
}
我正在使用模态转场而不是推送。问题是,当我从 table A 转到 table B 时,我在 table B 中看到数据。
但是当我从table C 回到table B 时,我在table B 中没有看到任何数据。
tableB 中的视图加载方法是:
- (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 个 table 视图使用通用的 segue 标识符?
请告诉我可能的处理方法?
根据您的评论,您需要一个放松转场,而不是您用于倒退的正常转场。
这可能会有所帮助 Storyboard: Control-drag from a bar button to the Exit item
或者向按钮添加一个操作以简单地关闭视图控制器。