{Xcode 4.2, цель развертывания iOS4.3, а не раскадровка, использующая ARC}
Я начал с шаблона приложения с вкладками и выбрал универсальную платформу, которая позволяет мне просматривать классы контроллера и файлы NIB дляiPhone ( ClassName_iPhone.xib ) и iPad ( ClassName_iPad.xib ) для 2 вкладок с оператором if в AppDelegate, чтобы определить, какие из них запускать - именно так, как я хотел, чтобы он был настроен.
Я хотел добавить 3-ю и 4-ю вкладки, поэтому, начиная с 3-й вкладки (делая по 1 за раз), я создал новый подкласс UIViewController.Поскольку он не дает возможности создавать оба NIB одновременно, я выбрал «Targeted for iPad» и намеревался создать NIB iPhone вручную.Я добавил суффикс "_iPad" к созданному файлу NIB, затем я создал файл NIB представления пользовательского интерфейса, к которому я добавил суффикс "_iPhone".Затем я настроил код для нового контроллера представления в файле реализации AppDelegate, включив в него 3-й контроллер представления и вкладку, и я использовал другие классы контроллера представления в качестве руководства для настройки кода нового класса.
Для третьего _iPhone NIB я перетащил объект просмотра из библиотеки объектов на холст и настроил его в соответствии с другими 2 _iPhone NIB.Но когда я пошел соединять розетки, в ссылочных розетках панели соединений, к которым можно подключиться, нет розетки для просмотра, что, как я думал, должно быть.На данный момент я подозревал, что что-то не так.
Я попытался запустить его в симуляторе, в режиме iPad он работает нормально (все 3 вкладки активны).Но в режиме iPhone нажатие на 3-ю вкладку приводит к сбою «SIGABRT» в потоке 1. Очевидно, что я не работал.Я не вижу ничего в окне вывода, которое дает мне какие-либо подсказки.
Будучи новичком в obj-c, поэтому, не будучи слишком уверенным в проблеме, я бы подумал, что тоже:
- использовал неправильный шаблон интерфейса пользователя (представление)
- должен был использовать объект контроллера представления из библиотеки объектов (не представление)
- или что я должен был объявитьнекоторые выходы в моих файлах классов контроллера представления.
Но если бы мне следовало сделать любой из последних 2, то мой вопрос был бы, почему тогда работает iPad NIB, когда у него явно есть объект представленияв NIB & нет выходов, объявленных в файлах класса (то же самое с двумя другими контроллерами представления для обоих устройств)?
Есть ли в классе UITabView выходы, предварительно объявленные в нем для первых двух вкладок?Но это все еще не объясняет, почему работает _iPad NIB.
Как обычно, любая помощь и совет очень ценятся, и если есть ссылка на объяснение, которое я пропустил, пожалуйста, покажите мне, потому что яЯ счастлив провести исследование.
Если то, что я сделал здесь, не поддается определению, то, в конечном итоге, я думаю, что в итоге я спрашиваю, как понять, как лучше всего создать второй файл NIB для iPhone, чтобысетка с классом, созданным с помощью iPad NIB.