在 JobListViewController 中创建几个属性:
@property (assign) int initialisedWithSelectedJob;
@property (assign) int selectedJob;
当您从主屏幕模态显示时,如果选择了一个作业,则将其传递给 JobListViewController 中的 initialisedWithSelectedJob:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
[(JobListViewController*)[segue.destinationViewController topViewController]
setInitialisedWithSelectedJob:selectedJob];
}
然后在您的 JobListViewController 的 viewDidLoad 中:
if (self.initialisedWithSelectedJob)
{
self.selectedJob = initialisedWithSelectedJob;
[self performSegueWithIdentifier:@"onToJobDetails" sender:self];
self.initialisedWithSelectedJob == 0;
}
您必须重置 initialisedWithSelectedJob 以便您可以从 JobDetails 屏幕返回此处而不会再次被直接弹回。)。
在 JobListViewController 的 prepareForSegue 中,您可以像以前一样传递 selectedJob id。
更新
这样,您将从 Job Detail 返回到 JobListViewController。无论您在主屏幕或列表屏幕上选择作业,从主屏幕 -> 作业列表屏幕 -> 作业详细屏幕的移动都将保持一致。
如果您按照0x7fffffff
的回答,那么无论您是从主屏幕还是作业列表屏幕中选择作业,导航都会大不相同。
我想知道你是否应该重新考虑一下你的设计——在主屏幕和 JobListViewController 中都有你的工作列表可能有点多余?