2012-10-07 111 views
2

所以我卡住了一個小問題,看起來很簡單,但給我適合。UINavigationController內UIViewControllers之間切換

基本上,我有這種事情成立:

(1) - >(2) - >(3)

我鑽到一張桌子,有一次我在(3)中,我希望能夠在兩個不同的視圖之間滑動,同時保持層次不變。像這樣:

(1) - >(2) - >(3A)/(3B)其中,3a和3b是能夠刷卡來回。我還想在兩個視圖中保留(2)的後退箭頭,以便用戶可以返回。

我遇到的問題是,3a和3b將需要做的JSON數據單獨調用,所以它不僅僅是裝載兩個圖像。我真的需要全部加載...

任何想法從哪裏開始?我有經驗,但這似乎完全混淆。而且我現在很想用故事板。非常感謝您的幫助!

我推新視圖通常的方法是像什麼,我已經做了以下。這顯然不會在這種情況下工作...

if (!self.objTomorrowDetailViewController) { self.objTomorrowDetailViewController = [[TomorrowDetailViewController alloc] initWithNibName:@"TomorrowDetailViewController" bundle:nil]; } 
[self.navigationController pushViewController:self.objTomorrowDetailViewController animated:YES]; 
+0

也許可以使用UIPageViewController 2頁(3) – Felix

+0

3a和3b是圖控制器或只是視圖? – Moxy

+0

謝謝 - 沒有爲此調查過UIPageViewController。現在檢查出來。不確定這是否完全解決了保持導航軌跡並在兩個其他視圖(3a和3b)之間交換的問題。 Moxy,3a和3b是UIViewControllers。 – gummo

回答

0

使用navigationController.viewControllers獲得當前視圖堆棧,創建一個基於它(或者通過一個可變的,或新的語法@[oldVCs[0],oldVCs[1],newVC])一個新的。將其設置爲[navigationController setViewControllers:newVCArray animated:YES]的新堆棧。

+0

嗨凱文,非常感謝!所以這是我的問題。我有點明白你在說什麼,但不能完全明白。我的代碼是這樣的,一旦我發現了刷卡:如果(self.objTomorrowDetailViewController!){ self.objTomorrowDetailViewController = [[TomorrowDetailViewController頁頭] initWithNibName:@ 「TomorrowDetailViewController」 捆綁:無]。 } [self.navigationController pushViewController:self.objTomorrowDetailViewController animated:YES]; – gummo

+0

當然這會崩潰。我如何重新調整你的代碼。再次,萬分感謝。 – gummo

+0

您應該編輯原始問題中的代碼。如果你在刷卡,你可能會用「UIPageControl」或「UIPageViewController」更好。 – Kevin

0

我認爲要做到這一點的最好辦法是使用自定義容器控制器控制器3.當你從2做你推,它會載入你可能已經設置爲顯示兩個一個(或多個自定義容器如果你想的話)其子控制器。輕掃手勢將在容器控制器的兩個子控制器之間切換,並且您仍可以從任一視圖恢復爲2。

+0

欣賞它@rdelmar。從您的帖子開始就一直在關注。將回報以幫助遇到此問題的其他人解決問題。再次感謝! – gummo

相關問題