2014-04-04 98 views
3

我正在處理的應用程序需要實現一個工作流程,以允許用戶在表單中輸入信息。我打算將它分解成一堆單獨的視圖控制器,而不是使用滾動視圖,而是由導航控制器管理。我首先將所有表單片段放在故事板中,然後開始連接表單不同部分的所有推送和解除靜止段落。unwind segues和彈出視圖控制器有什麼區別?

我的問題是,如何使用所有這些推動和放鬆segues比簡單地使用我的導航控制器的pushViewController和popToViewController方法,並完全跳過故事板?內存管理或性能方面有什麼不同嗎?在設計和可維護性方面不會簡單地使用push和pop是更好的做法嗎?我找不到解決此問題的文檔中的任何內容。

回答

3

他們所做的事情基本上沒有區別。關於使用展開的一個好處是,您可以將數據傳回給您正在展開的控制器。如果您使用pop方法,那麼您必須創建一個委託協議來執行此操作。但很多這是主觀的。你可以使用哪一個更舒適的你。我喜歡使用故事板,因爲它可以很容易地看到控制器之間的關係。當你在一個大型團隊中工作時,使用故事板可能是一個問題(所以我聽說過),所以這是另一個考慮因素。

+0

關於將數據傳遞迴父視圖控制器的好處。我記得在使用推送/彈出時感受該效果,但並不反對使用協議/委託模式。另外,混合和匹配方法可能不是不可能的。 –

+0

@CameronAskew,是的,混合搭配完全沒問題。放鬆功能有用的另一種情況是,當您將控制器的層次結構放置在屏幕上時,混合了模態演示和推送 - 使用彈出和解散的組合可能會很複雜,但使用放鬆。 – rdelmar

0

這是一個很好的問題。

在我的第一個iOS項目中,我跟隨了在線教程並使用了storyboard segues等。在我的第二個iOS項目中,我放棄了這個,只是推送和彈出視圖控制器。

我實際上發現它更清潔,因爲使用故事板的方式,您必須撥打performSegueWithIdentifier,然後您可以通過與prepareForSegue同步來準備接收視圖控制器。爲什麼要這樣做時,你可以準備一個視圖控制器,並將它全部推到一個地方?

此外,它將視圖控制器與轉換分離。它打開了一切,並允許更多的多功能性和更快速的發展。

所以我的問題是推動和彈出視圖控制器。也許有人會讓我看起來很愚蠢,但我使用這種方法已經取得了很大的成功。

相關問題