2013-06-12 7 views
1

Я работаю над универсальным приложением. Он отлично работает как на iPhone и iPad, так и на iPhone 4S, но он падает на iPad. Это разделенный вид на iPad, и только при открытии определенных просмотров он сбой. Некоторые из представлений работают очень хорошо, и нет проблем, но в других случаях он вылетает при выборе определенной строки в главном представлении, чтобы показать новое представление в подробном представлении. Взгляды, о которых идет речь, открываются просто отлично, если я запускаю его на симуляторе iPad. Есть идеи?Ошибка приложений на устройстве, но не на симуляторе

Вот как я показываю один из представлений проблем в подробном представлении при выборе его строки в главном представлении. У меня есть панель поиска в этом представлении, и панель поиска появляется, но на карте нет. Опять же, все отлично работает на симуляторе iPad.

else if (indexPath.row == 8) 
    { 
     RSFMipad *rsfm = [[RSFMipad alloc]initWithNibName:nil bundle:nil]; 
     NSMutableArray *details = [self.splitViewController.viewControllers mutableCopy]; 

     UINavigationController *detailNav = [[UINavigationController alloc]initWithRootViewController:rsfm]; 

     [details replaceObjectAtIndex:1 withObject:detailNav]; 

     KFBAppDelegate *appDelegate = (KFBAppDelegate *)[[UIApplication sharedApplication]delegate]; 
     appDelegate.splitViewController.viewControllers = details; 
     appDelegate.window.rootViewController = self.splitViewController; 
     appDelegate.splitViewController.delegate = rsfm; 
     [appDelegate.splitViewController viewWillAppear:YES]; 
    } 

И вот еще одна, где я загружаю другую из другой строки в главном виде. Это не сразу заполняет подробный вид, а вместо этого загружает новый вид таблицы в главном представлении. Это также приводит к сбою на iPad, но не в симуляторе.

else if (indexPath.row == 6) 
    { 
     MemberBenefitsipad *benefits = [[MemberBenefitsipad alloc] initWithNibName:@"MemberBenefitsipad" bundle:[NSBundle mainBundle]]; 
     [self.navigationController pushViewController:benefits animated:YES]; 
    } 

Ошибка ошибка, которая показывает в журнале является:

2013-06-12 14:36:54.267 KFBNewsroom[12125:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/ED63F1DA-31C8-4FC1-81D7-A3DCE3186C98/KFBNewsroom.app> (loaded)' with name 'MemberBenefitsipad'' 

EDIT: Я решил эту проблему. Мне просто пришлось поместить xib-файлы в ресурсы пакета.

ответ

1

Эта проблема, вероятно, вызвана именами ваших xib-файлов. У вас нет xib с именем MemberBenefitsipad.

Если у вас есть разные xib-файлы для контроллера вида для iPhone и iPad, напишите файлы, подобные «MyXibFile ~ ipad.xib» (для iPad) и «MyXibFile ~ iphone.xib» для iPhone, и когда вы пытаетесь загрузить xib использует только строку «MyXibFile», а не все имя, таким образом ОС загрузит требуемый xib в зависимости от устройства.

быть также осторожной йотой ресурсов и XIB именование, потому что имитаторы не чувствительны к регистру (MyXibFile = myxibfile), но устройство чувствительны к регистру (MyXibFile! = Myxibfile)

Смежные вопросы