我試圖讓我的應用檢測用戶是否在iPhone 5屏幕上。爲iPhone 5加載不同的xib
我在其他視圖中成功使用以下方法。
通過按鈕我所說的XIB /視圖被加載
- (IBAction)DemoTapeTwo:(id)sender {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
DemoTapeTwoViewController *Second = [[DemoTapeTwoViewController alloc] initWithNibName:nil bundle:nil];
[self presentViewController:Second animated:YES completion:NULL];
} else {
DemoTapeTwoViewController *Second = [[DemoTapeTwoViewController alloc] initWithNibName:@"DemoTapeTwoViewController_iPad" bundle:nil];
[self presentViewController:Second animated:YES completion:NULL];
}
我有兩個XIB的,
iPhone 5之一:XViewController_568.xib
iPhone 4之一:XViewController.xib
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
if ([[ UIScreen mainScreen ] bounds ].size.height == 568) {
nibName = [NSString stringWithFormat:@"%@_568", nibName];
}
if (self = [super initWithNibName:nibName bundle:nibBundle]) {
}
return self;
}
這^進入.m文件
它應該檢測屏幕是否是iPhone 5或iPhone 4屏幕並調整Xib。
然而,Xcode中出現了錯誤:由於未捕獲的異常 'NSInternalInconsistencyException'
終止應用程序, 原因: '不能在包中加載NIB:' 一個NSBundle /用戶/ SamGuichelaar /庫/應用程序支持/ iPhone模擬器/ 6.1 /應用/ 321B4512-7BD3-46D8-A944-F12029448326 /大路驅動Gestures.app(加載) '名爲'(空)_568' 第一擲調用堆棧:
所以,不順心的事變得無法找到iPhone 4 Xib的原始名稱。
任何人都可以幫助我嗎?
這是一個從你的異常信息清楚地表明你的initWithNibName:包:方法被調用無參數 - 因此,「(空)_568」 –
但是它適用於其他項目完美。任何想法如何解決這個問題? –
我想你在其他項目中手動調用該方法?這裏怎麼樣,你在哪裏以及如何實例化這個視圖控制器? –