2013-03-08 44 views
0

我在使用Storyboard並在我的iPad應用程序中用戶點擊「登錄」時創建彈出窗口。每種登錄類型都有自己的ViewController,需要更多的popover控制器。將新內容加載到UIPopoverController中

讓主視圖控制器生成所有彈出窗口內容,或者更換一個彈出窗口控制器的內容是否合適?

例如(我會嘗試用文字drawing_表示這一點)

1) MainVC - >酥料餅( 「登錄與電子郵件」, 「通過Facebook登陸」 等。) MainVC < - 用戶點擊按鈕 MainVC - >酥料餅(電子郵件文本字段,密碼文本字段) MainVC < - 用戶輸入的東西...

2) MainVC - >酥料餅( 「登錄與電子郵件」,「日誌In With Facebook「等。) Popover - >替換內容(加載視圖控制器的文本字段) 新內容 - >處理程序UITextField輸入

我已經選擇了1,因爲它很容易實現,儘管選擇2似乎更有組織。你認爲更好的練習是什麼?

回答

0

任何一種選擇都可以工作,涉及UI的任何事情都不是性能問題。所以「正確的」答案可能取決於代碼複雜性/清晰度等次要考慮因素。我投票在Storyboard中創建單獨的實例,而不是用rutnime代碼重新調整單個實例。

使用獨立的視圖控制器設置,每個場景可以針對其內容進行最佳佈局,包括使用動態約束。所有內容都記錄在故事板中,並且有更少的運行時間代碼可以清理。對我而言,最好在故事板上有一些混亂,而不是在代碼中。你可能有不同的優先級。

如果用於不同彈出窗口的ViewControllers共享許多行爲,請使用繼承來減少代碼擴散。

+0

涉及UI的任何內容都不是性能問題:它爲什麼不是性能問題? – 2013-03-08 21:07:23

+0

我對性能的評論意味着與用戶輸入密鑰或手勢的時間相比,這些方法可能執行的任何差異都完全可以忽略不計。登錄是一種「一勞永逸」的行爲,而不是重複的事情。延遲當然是一個問題,網絡登錄不應該阻止主線程。 – jbbenni 2013-03-09 01:09:59