2012-03-12 82 views
1

我在所有基礎知識中都希望擁有iPhones的視圖,以及iPads的視圖。但是,我想爲它們使用相同的視圖控制器,因爲它們是相同的,只是針對每個設備進行了優化。將兩個XIB連接到一個ViewController

我知道這是可能的,因爲它是一個通用的應用程序,通用項目的默認視圖包括一個iPhones主視圖和一個iPad主視圖。但是,它們是自動實現的,所以我不知道如何複製它。

因此,這個問題的焦點是:你如何將兩個xib連接到一個viewcontroller?

感謝,

  • 傑克
+0

你已經做了兩個不同的xib文件?/ ..你是什麼意思的兩個意見..你可以解釋 – Shubhank 2012-03-12 05:23:36

+0

沒問題。我想將兩個視圖(xibs)連接到同一個視圖控制器 – JTApps 2012-03-12 05:35:13

回答

9

在代碼..無論你很多新的觀點..do這樣

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
{ 
      self.MainView = [[[YOurViewController alloc] initWithNibName:@"YOurViewController_iPad" bundle:nil]autorelease]; 

} 
else 
{ 
    self.MainView = [[[YOurViewController alloc] initWithNibName:@"YOurViewController_iPhone" bundle:nil]autorelease]; 
} 

你將不得不更換筆尖名和與你的類名稱..

在上面...一個更重要的一步去廈門國際銀行的每個文件 ..click上文件所有者 ..和在i * dentity檢查 *(頂部右側圖標)..確保它的class YOurViewController

+0

我知道你說過「無論你在哪裏拍攝新視圖」,但我有點困惑。例如,是否會在視圖控制器中關聯兩個視圖? – JTApps 2012-03-12 05:53:22

0

首先,當您加載視圖時,您可能需要檢查它是什麼設備。如果iPhone xib1另有xib2。關注如何加載xib本身。它很蠢。如果你想改變一個UIViewController意見纔剛剛使用此代碼:

NSArray *nibObjs = [[NSBundle mainBundle] loadNibNamed:@"xib2" owner:self options:nil]; 
UIView *aView = [nibObjs objectAtIndex:0]; 
self.view = aView; 
0

從代碼:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 

videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController_ipad" bundle:nil]; 
} 
else{//iphone 
videosController = [[SoftLensAdvanceSearch alloc] initWithNibName:@"VideosController" bundle:nil]; 
} 

從IB

創建2個不同版本的 「廈門國際銀行」 的文件並指定「文件名」(xcode 4.3+屬性窗口中的第一組),即爲iphone添加iphone文件名,爲ipad添加ipad文件名。

0

但丁已經回答了我與此有關的問題。 「在此之上......更重要的一步是進入每個xib文件..點擊文件所有者(左欄)..並在我*牙齒檢查員*(右上角的圖標)..確保它是類YOurViewController「

但我會添加,將所有的按鈕設置在一個筆尖。然後放置它們,但不要按照與輔助視圖相同的方式將它們連接起來。相反,右鍵單擊左欄中的文件所有者,您會看到一個完整的按鈕和插口表,可以連接到新Nib中的對象。

希望這會有所幫助。

相關問題