2012-10-19 58 views
2

我的問題與one類似,但沒有完全回答。使用UITabbar上方的UIToolbar - 可以嗎?

我想要做的是將個人UITableViews底部的不同UIToolbars的現有基於導航的應用程序轉換爲具有UITabbar界面的應用程序。其中一個選項卡應顯示與現有應用程序(顯示某種分層數據)相同的UITableView數據層級,而其他應用程序將分配其他內容(如:Settings,Help,...)這裏。這個想法是允許用戶從導航堆棧的任何階段快速切換到「幫助」屏幕 - 然後返回。

例如,使用3個標籤:

1. Database root (UIToolbar) - folder 1 (UIToolbar) - file 1.1 
                - file 1.2 
           - folder 2 (UIToolbar) - file 2.1 
                - file 2.2 
2. Help (no UIToolbar) 
3. Settings (no UIToolbar) 

我從來沒有見過這樣的設計在任何現有的應用程序,雖然the question cited above表明,它可能實際上有可能保持現有UIToolbars從舊的應用程序和只需將它們放在標籤欄上方即可。

這是

  • 技術上是可行的(沒有例如用設備旋轉的問題)?
  • 由接口指引允許嗎?

雖然示例代碼將不勝感激,但我主要想知道是否值得嘗試構建這樣的應用程序 - 或者首先這樣的設計是否是個壞主意。

回答

0

我嘗試過了,現在我可以回答我的問題:

  • 這是可能的,而且沒有任何問題與設備旋轉,如果確保爲每一個選項卡中的視圖可以旋轉。
  • 雖然看起來有點不尋常,但我覺得它非常實用。當然,它需要一些垂直空間。

至於實施,我發現這是令人驚訝的簡單: 我所要做的就是使用Interface Builder來代替我原來的主UIViewController的插入UITabBarController和移動後者的第一個選項卡前者。然後在UIViewControllers內部創建更多選項卡,並將其類別重命名爲我的其他現有UIViewControllers。最後,在相關界面構建器檢查器窗格中手動設置所有這些控制器的關聯NIB文件(因爲它們現在不再由我的代碼實例化),並更改一行代碼以使UITabBarController控制器成爲root控制器。

結果:UIToolbar出現在第一個選項卡的UITabbar上方,但不出現在其他選項上。它的位置是固定的(當滾動一個列表或類似的東西時),但它與標籤欄和其他所有東西一起自動旋轉。

0

你可以在任何地方有UITabBar,你只是不會使用它的控制器。您將不得不編寫自己的控制器並處理設備輪換期間發生的情況(或使用iOS 6的自動佈局功能)。