讓你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'的方法,這需要我調整一些公平的東西。謝謝。我不確定主視圖上的最新作業更新是多餘的。這份簡短清單與作業清單完全不同,可以按不同的順序顯示,並顯示有關作業的不同信息。但是,感謝這個想法,它在設計時就考慮到了。 –