2013-05-20 87 views
0

在我的故事板中,我有2個VC:VC1是登錄頁面,VC2是用戶登錄後我的應用程序的主頁。在視圖之間轉換:在segues和代碼之間轉換

1)從一個視圖切換到另一個視圖的最佳方式是使用模態輪廓?它是否正確?

二,我想知道我的故事板中的segues是如何「翻譯」成代碼的? 我有兩種類型的塞格:莫代爾和推。

我一直在我的代碼中使用performSegueWithIdentifier方法,但現在我想知道在這個方法背後發生了什麼。 模式是否被翻譯爲[self presentModalViewController:newVC]方法? 推播是否翻譯成[self.navigationController pushViewController:newVC]

沒有更多真的發生?

回答

0

關於你的第一個問題,一如既往的答案是:這取決於你的需求。 如果您主要對「丟棄」前一個視圖控制器感興趣,那麼是的,如果您希望讓用戶瀏覽您的視圖控制器,那麼可能需要一個模式segue,如果您希望讓用戶瀏覽您的視圖控制器,那麼使用push segues的導航控制器可能是更好的方式,甚至是一個標籤視圖控制器。但是,這又取決於你的需求。

至於你的第二個問題,看看這個guide。 segue是類UIStoryboardSegue的一個實例,它保持對源視圖控制器和目標視圖控制器的引用。在實際執行segue(實際執行轉換的方法perform)之前,會調用源視圖控制器的prepareForSegue(這使您有可能在轉換髮生之前做一些額外的設置),然後發生實際轉換通過方法perform,其中顯示了一些動畫,並根據segue的類型調用presentViewController:animated:completion:pushViewController:(您可以通過覆蓋初始方法和此方法創建自定義細分)。