我使用ARC創建了一個tabBar應用程序。所以默認設置會自動提供2個viewControllers;如何將手動創建的ViewController鏈接到TabBar應用程序
1)FirstViewController.h,FirstViewController.m; FirstViewController_iPhone.xib,FirstViewController_iPad.xib
2)SecondViewController.h,SecondViewController.m,SecondViewController_iPhone.xib,SecondViewController_iPad.xib
我想創造一個新的視圖控制器'ViewController3',但在文件創建過程中,我只能選擇創建iPad或iPhone(複選框'針對iPad')。我需要iPhone和iPad xib,就像爲我創建的FirstViewController和SecondViewControllers一樣。所以我決定手動創建xib,並繼續創建沒有xib的文件。
因此,自然之後,我繼續手動創建2個新聞xib; ThirdViewController_iPhone.xib和ThirdViewController_iPad.xib
我加入這行到原始AppDelegeate文件:
UIViewController *viewController1, *viewController2, *viewController3;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController_iPhone" bundle:nil];
} else {
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController_iPad" bundle:nil];
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, viewController3, nil];
我然後運行該項目,並得到了這一點:終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加載了「ThirdViewController_iPhone」筆尖,但未設置視圖插口。'
我該如何設置插座?
您需要掛鉤的觀點可達文件的所有者在xibs –
我在手動創建xibs的文件的所有者點擊。然後,我使用類屬性(檢查器面板附近的某個地方)輸入viewcontroller的名稱作爲類...仍然沒有成功... –
'ctrl' +'從'文件所有者'拖到'視圖',然後從HUD選擇'視圖' - 這就是我以前的意思 –