2011-06-18 57 views
0

正如標題所示,我構建了一個基於實用程序的應用程序。
該應用程序包含(目前)2個視圖控制器+模型類層次結構。
事情是,因爲我想添加一些功能的應用程序,我想將其轉換爲基於TabBar的應用程序。將實用程序應用程序(2個視圖控制器)轉換爲標籤欄應用程序

作爲第一步,我希望第一個視圖是標籤欄的第一個視圖,而flipSideView是其他標籤欄項目之一。

這樣的任務有沒有「標準程序」/「購物清單」?
我確定你們中的一些人遇到了同樣的問題,並且希望能夠在「切片」應用程序以及在爲主窗口創建一個新的nib文件之後「對其進行佈線」提供建議(這是第一步?)

在此先感謝。

+1

你可以請更具體地說你想要什麼得到最終結果?例如將設置屏幕從背面移至單獨的前側標籤。 – Russian

+0

@Russian,多數民衆贊成正是我想要在第一次實現..之後,我會創建更多的選項卡。 我編輯了這個問題。謝謝 。 –

回答

2

我可能會開始如下(假設你使用的界面生成器,並使用標準的Xcode工具應用模板):

  • 編輯您的MainWindow.xib文件,並拖動標籤欄控制器對象到頂層您的視圖層次結構。
  • IB中的默認標籤欄控制器包含兩個視圖控制器項目作爲示例。單擊第一個,並將其類更改爲您現有的主視圖控制器類。
  • 您還可以通過添加IB已添加到視圖層次結構中的關聯選項卡欄項目來設置主視圖控制器項目的圖標和選項卡欄標題。
  • 對設置FlipsideViewController類的第二個標籤欄項目做同樣的事情。
  • 從NIB文件中刪除舊版本的主視圖控制器,並從應用程序委託中刪除IBOutlet屬性(您可能也應該刪除dealloc中的主視圖控制器引用)。
  • 在應用程序委託添加一個IBOutlet屬性的標籤欄控制器如下(不要忘記來合成屬性):

    @屬性(非原子,保留)IBOutlet中的UITabBarController * tabBarController;

  • 在IB中,將來自App委託對象的tabBarController出口連接到選項卡欄控制器對象。

  • 最後得到的標籤欄控制器代替主視圖控制器以顯示在應用程序的代碼改變中:didFinishLaunchingWithOptions:以下內容:

    [self.window addSubview:self.tabBarController.view] ;

這應該讓基本標籤欄應用程序啓動並運行,並且您可以將其他視圖控制器添加到標籤欄。

由於您不再需要在MainView和FlipsideView之間翻轉,因此您可以從MainViewController中刪除對FlipsideViewControllerDelegate的引用以及info按鈕及其IBAction方法showInfo。同樣在FlipeSideViewController中,你應該從視圖和它的IBAction方法中移除done按鈕,因爲這些方法在使用標籤欄時不再有意義。

+0

太好了。謝謝 。 任何關於主+控制器的分離?它應該無縫地工作,還是我應該在兩者之間分開這個委託? –

+1

您可能想要刪除代表以及主視圖上的info按鈕和flipside視圖上的done按鈕。我相應地更新了答案。 – kharrison

+0

再次感謝。大博客,順便說一下.. –

1

所以,一步一步:): 1.在您的應用程序委託中聲明UITabController插座。 2.在MainWindow.xib中:首先在文檔窗口中拖動UITabBarController的實例,然後建立從應用程序委託到該實例的連接。現在您可以將MainViewController設置爲UiTabBarController的第一個tab viewcontroller,然後將FlipsideViewController設置爲UiTabBarController的第二個tab viewcontroller。 3.在應用程序委託的appDidFinishLaunching替換[self.window addSubview:mainViewController.view];與[self.window addSubview:theNameOfUITabBarControllerOutlet.view] ;.那會做這項工作。對不起,我不知道你的背景,這就是爲什麼我沒有具體說明我執行特定的行動,所以讓我知道如果你發現自己陷入困境

相關問題