2011-10-09 76 views
1

所以我有四個視圖控制器,A,B,C,D,他們按順序顯示。假設我在視圖C中,並且我想要查看D,所以我將視圖控制器D推入導航控制器堆棧中,但是,我想要的是,當D嘗試返回時,它直接轉到視圖控制器B的C.UINavigationController堆棧問題推和彈

有沒有一種特殊的方法來實現這一目標?邏輯的方法是做popViewController,然後pushViewController:C.我試過這個,但沒有成功。

+0

不同 「所以我*三個*視圖控制器,A,B,C,d」 - 你需要糾正:) – tipycalFlow

+0

感謝,它現在修正 – xonegirlz

回答

0

因此順序是A-> B-> C-> d正確?從D開始,當「Back」按鈕被點擊時,你想要去B? 這意味着彈出D然後彈出C讓你回到B.這就是popToViewController:animated:所做的。 UINavigationController Class Reference

popToViewController:動畫:

入時視圖控制器,直到指定的視圖控制器處於 頂部導航堆棧的。

注意,這是從popToRootViewControllerAnimated:

+0

我試着調用popToViewController兩次,它不起作用 – xonegirlz

+0

當你在D上時,你只需要調用它一次。你究竟看到了什麼? – jcm

0

如果A位於堆棧的底部,或者popToViewControllerAnimated:位於中間某處,則可以使用popToRootViewControllerAnimated:

+0

爲我說,我已經這樣做了......所以當我在視圖控制器B,我想加載C ..我做了popToViewControllerAnimated,然後pushViewController:C,但它沒有解決 – xonegirlz

+0

我編輯了上面的問題,以反映真實案例 – xonegirlz

+0

好的,那麼我很困惑你在這裏說什麼。你的堆棧是ABCD,那麼你想要它去AB?但是你想再次推C來製作ABC? – Sean

1

代替推d的,請與導航控制器上-setViewControllers:animated:與視圖控制器的陣列有序A,B,和D

+0

一般來說,這不是一個好的做法,因爲它可能會讓用戶誤解如何以直觀的方式理解界面。 – Sean

+0

@肖恩然後你會怎麼解決它? – xonegirlz

相關問題