2010-09-16 84 views
3

我一直在研究有大約15個視圖控制器的iPad應用程序。一些視圖控制器是全屏幕,其他視圖控制器嵌入其他視圖控制器(認爲分割視圖控制器)。iPad導航模式

在iPhone上導航非常簡單。即使您擁有大量的視圖控制器,您也正在使用Apple的根視圖控制器之一(選項卡或導航)。導航由根視圖控制器處理,您幾乎可以自由地關注視圖。

在ipad上,分割視圖和選項卡視圖控制器並不總是有用,對於我正在處理的應用程序,他們不會削減它。我創建了單獨的導航控制器對象,以便根據用戶執行操作時發佈的通知來處理隱藏/顯示視圖控制器。

其他人都有解決iPad導航問題的經驗嗎?

回答

3

你有沒有檢查出由Matt Gemmell提供的MGSplitViewController?
http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated

我不是聲稱它會解決所有的導航問題,但它是一個有趣的想法,可以幫助你找到處理視圖控制器的更多/更好的方法。

+0

感謝您的信息。我已經讀了一會,但沒有看到它。現在就做,謝謝! – logancautrell 2010-09-16 17:16:26

0

此外,請注意使用多個視圖控制器來查看未填滿整個屏幕的視圖。蘋果公司的文件明確規定,你不應該使用局部屏幕視圖的視圖控制器:

注意:你不應該使用視圖控制器來管理意見只能填充其窗口,也就是說,只有部分的一部分由應用程序內容矩形定義的區域。如果您希望有一個由多個較小視圖組成的界面,請將它們全部嵌入到單個根視圖中,並使用視圖控制器來管理該視圖。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

儘管當你有多個視圖控制器管理不同的子視圖的一些事情可能會奏效,其他的事情將無法正常工作。例如,只有一個視圖控制器會在設備旋轉時被通知。同樣,並非所有的視圖控制器都會發送你可能期望的'viewWillAppear''viewDidUnload'等消息。

+1

該文檔是在iPad之前編寫的。讓你的所有屏幕分開在iPad上的視圖控制器是不現實的。在任何非平凡的應用程序中,單個視圖控制器處理所有視圖太簡單了。雖然你必須手動處理一些像viewWillAppear這樣的方法,但是內存管理相關的方法*仍然可以正確調用。 – logancautrell 2010-09-24 22:58:00

1

使用iOS 5 Apple已經添加了容器視圖控制器的概念。這使得添加和刪除兒童變得容易,允許他們的旋轉/出現/消失的方法被自動調用。很酷的東西!