2014-05-10 59 views
1

我對iOS很新,但已被放在一個複雜的應用程序。我在故事板,賽段,視圖等中看到的所有教程都非常簡單。複雜的故事板導航

我已經能夠使用segue顯示視圖並返回,但管理員不關心segues。在複雜的應用程序中移動後,用戶應該能夠跳到應用程序的另一部分,就好像用戶已經返回了兩次,然後選擇了另一個視圖,然後選擇了另一個視圖。

我只是失去了如何做到這一點。在故事板編輯器中添加一個新的直接segue?或者用編程方式創建一個自定義的segue?我需要關於方向的一些提示,比如看什麼方法,谷歌或高級教程等。提前致謝。

+0

[使用perforfSegue方法](http://stackoverflow.com/questions/9176215/understanding-performseguewithidentifier) –

+0

如果沒有GUI的全部細節,很難評論,這取決於用戶可以/不可以下的位置。但是概括起來,沒有任何理由說明賽格不能從一節跳到另一節,但你可能要小心。你可以做的事情是可以適用的,就是交換一個導航視圖控制器爲另一個堆棧所用的視圖控制器堆棧 - 這可能適用於你所說的「跳到另一個部分」的情況,但是如果沒有圖表,我不能'不要說,我懷疑你會得到任何有用的答案。 – Gruntcakes

+0

需要注意的一件事是,除了放鬆之外,你不應該回到以前的任何隊員身上。 – rdelmar

回答

3

通常情況下,導航控制器允許堆棧中的單個視圖控制器。這對於主細節應用程序和線性工作流程非常有用。

當一個視圖控制器以網絡形式連接到另一個視圖控制器時,事情變得難以管理。

如果你想依靠一個視圖控制器堆棧的automatted管理,但去一次回一個以上的項目,看看開卷塞格斯:What are Unwind segues for and how do you use them? - 答案是說明真的很好。

如果您可以在圈子中導航,則會變得更復雜。實質上,您的導航控制器會將已經被初始化的類的新對象放入堆棧,以便將其麪包屑路徑一直保留到根視圖控制器。

在某些情況下,這是不可取的。你可以使用UINavigationControllerDelegate,當滿足某些條件時從堆棧中移除項目。

假設您有4個視圖控制器,A - D。可能的連接是:A - B - C - {B,D} - 答:從D開始,當您完成時,您想放鬆到A.從C,您可能想要在B添加一個附加項目,但你不想跟蹤所有BCBCBC -...連接。在這些情況下,更改導航控制器歷史記錄很有用,並且不會打破「後退」按鈕的預期行爲。

+0

謝謝,這真的很有幫助,我沒有遇到過放鬆,或至少沒有注意到。 – Gerry