2012-06-17 50 views
0

當我以最有效的方式點擊Pop Over List視圖中的每一行時,如何調用單個視圖控制器?這意味着,我不必重新編碼以在每個單獨的視圖控制器中構建Pop Over List View組件,它們可以像導航工具一樣分享它。從Uipopovercontroller調用多個視圖列表查看內容

我已經建立

我已經建立了視圖控制器列表彈出我的主視圖控制器。 這是執行appDidFinishLaunching時加載的第一個視圖。 所以,當我們運行應用程序,這就是我們得到:

鏈接到流行音樂在列表視圖的截圖: http://s14.postimage.org/63k567vtd/image.png

對於上述流行在列表中的每個行,我有一個方法,其中我可以把在代碼: 1.確定哪一行的基礎上選擇的行選擇 2,做任何動作,像的NSLog和東西 3.所有這些代碼坐在主視圖控制器

要求

我正在構建一個演示應用程序,因此目前所有數據都是虛擬數據。

  1. 我需要調用單個視圖控制器每個在彈出的排在名單的被竊聽時。
  2. 每個視圖控制器都將擁有自己的一組數據,自己的一組UI對象以及它自己的XIB文件。
  3. 所以,如果用戶點擊應用程序,它必須調出應用程序XIB文件及其功能,然後從這裏進行任何導航。如果Application xib有一個啓動另一個視圖的按鈕,這個功能也應該適用。
  4. 但是,它們都必須具有與彈出式列表按鈕相同的頂部導航欄,因此用戶可以點按該按鈕並隨時在應用中查看彈出式列表。

請分享您的看法。 謝謝。

回答

0

我建議你看看UISplitViewController。它是由Apple構建的一個組件,用於管理它看起來像您正試圖完成的任務。基本上,你用2個視圖控制器進行設置;第一個(稱爲「主」),將是你的表格視圖。第二個(稱爲「細節」)將被切換出來的視圖控制器。

一旦你探索這一點,是舒適的術語,這裏的一般建議:

裏面的主表視圖控制器的didSelectRowAtIndexPath:方法,實例化適當的視圖控制器(基於indexPath),並將其設置如詳細視圖控制器,像這樣:

- (void)tableView:tableView didSelectRowAtIndexPath:indexPath { 
    UIViewController *newDetailVC = // make and configure a new VC based on indexPath 
    self.splitViewController.viewControllers = [NSArray arrayWithObjects: self, newDetailVC, nil]]; 

} 

以下是適當的鏈接: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UISplitViewController_class/Reference/Reference.html#//apple_ref/occ/cl/UISplitViewController

,並進一步(後面部分):http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html%23

+0

值得注意的是,使用這個組件,與顯示和隱藏主控部分相關的所有UI都會爲您處理,甚至在旋轉時更改它。 –