让你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,就像您已经做过的一样。
更新
这样一来,你会从工作细节返回JobListViewController。无论您是在主屏幕还是列表屏幕上选择作业,从主屏幕 - >作业列表屏幕 - >作业详情屏幕的移动都将保持一致。
如果按照0x7fffffff
的回答则导航是完全不同的,你是否选择从主屏幕或任务列表界面的工作。
我想知道你是否应该重新考虑你的设计一点 - 无论是在主屏幕上,并在JobListViewController或许有点多余让您的任务列表?
这是一个很好的答案,并且在保持堆栈顺序的同时完美工作。我更喜欢使用'0x7fffffff'的方法,这需要我调整一些公平的东西。谢谢。我不确定主视图上的最新作业更新是多余的。这份简短清单与作业清单完全不同,可以按不同的顺序显示,并显示有关作业的不同信息。但是,感谢这个想法,它在设计时就考虑到了。 –