2010-08-24 34 views
2

與其他許多開發人員一樣,我創建了使用UITabBarController作爲根控制器的iPhone項目,使用UINavigationController的選項卡視圖從列表向下鑽取到詳細視圖。和其他許多開發者一樣,我需要將這些應用程序遷移到iPad,以便他們利用更大的屏幕(更重要的是,不要強迫用戶使用僅用於iPhone的應用程序的醜陋的「雙倍」可視化效果)。將基於標籤欄的iPhone項目移植到iPad

蘋果公司爲此確切場景創建了UISplitViewController ......看似。我之所以這麼說,是因爲雖然我看到它在設置,iPod,iTunes等中使用,但這些應用程序在UITabBarController內部都沒有使用UISplitViewController,因爲它不僅被記錄爲不工作,而且如果這兩個應用程序被強制爲霰彈槍結婚。

考慮一個關於動物的假想iPhone應用程序。它有三個選項卡:「類別」(其中動物按照一些簡單的方法進行分類 - 也許我們有一個包含「鳥類」和「魚類」類別的兩級層次結構),「搜索」(使用標準UITableViewUISearchDisplayController)和「故事」,這些故事是關於動物的故事(也許有一個關於青蛙的故事,另一個關於電腦書呆子馬變成了獨角獸)。

在「類別」和「搜索」是可以合併兩個選項卡,目前還不清楚,你可以或應該與故事有關動物的合併動物列表。因此,儘管您可能想在iPad上使用UISplitViewController(將搜索集成在分割的「根」,左側),但您如何展示「Stories」視圖?你使用分段控制器嗎?上還是下?拆分的「根」或「細節」視圖?或者,您可以使用顯示兩個按鈕(「類別」和「故事」)的「家庭」屏幕(如WebMD的iPad應用程序),然後顯示用戶點擊的任何分割視圖。或頂部或底部的工具欄?

我試着看過其他幾個應用程序,包括設置,郵件,iPod,iTunes,聯繫人,地圖等,但他們都沒有在一個應用程序中呈現兩種「不同」類型的信息。

這裏的一般方法是什麼?有沒有最佳做法? iPad編程社區採用的任何一般模式?

還是我等待並且交叉我的手指,Apple以某種方式最終允許UISplitViewController工作而不要求它是「根」? (這可能永遠不會發生!)

+0

+1的l33t獨角獸... – Jasarien 2010-08-24 12:09:41

回答

6

您可以使用UISplitViewController並將UITabBarController作爲主視圖控制器(通常是列表的左側窗格)。

這樣,您仍然可以使用選項卡並向下鑽取方法,直到您讀取每個動物的詳細視圖(使用類比),然後在詳細視圖控制器(右側窗格)中顯示詳細信息頁面。

這將工作,並且不被Apple或HIG禁止。

這是我的想法呢:)

+0

有趣的想法。我沒有想過把標籤欄放在那裏。我會放棄它。 – 2010-08-24 18:05:14