Настройки проекта Xcode, препятствующие появлению панели вкладок внизу моделей iPhone X?

#ios #iphone #xcode #iphone-x

#iOS #iPhone #xcode ( код x ) #iphone-x #xcode

Вопрос:

У меня есть старый проект, над которым я работаю уже около 4 лет — проект прошел множество обновлений версий XCode с 6 до 10 (сейчас я использую XCode 10.2.1 с 12.2 SDK). Основная проблема, с которой я сталкиваюсь, заключается в том, что для переключения вкладок используется контроллер просмотра вкладок, и что бы я ни делал, я не могу правильно отобразить панель вкладок в нижней части устройства семейства iPhone X: она отображается намного выше, чем должна.

Чтобы попытаться окончательно сузить проблему, я, по сути, временно «заменил» весь код и элементы раскадровки из проекта, чтобы посмотреть, что-нибудь переместит панель вкладок туда, где это должно быть (если я просто создам пустой новый проект с контроллером панели вкладок, панель вкладок появится там, где она должна). Я создал тестовую раскадровку, используя только контроллер панели вкладок, подключенный к одному контроллеру навигации (никаких ограничений не было введено). К ним не прикреплены коды ViewController. Я заменил делегат приложения на «пустой» делегат приложения, так что, по сути, там вообще нет постороннего кода или ограничений. И я все еще перемещаю панель вкладок:

симулятор iphone xs

Это происходит на симуляторе и устройстве, и нет никакого кода или настройки раскадровки, которые делают это (эта же настройка в новом проекте помещает панель вкладок в нужное место).

Я просмотрел настройки сборки и другие свойства, которые, возможно, пропустил, чтобы узнать, ограничивал ли я что-то много лет назад, что могло повлиять на это, и ничего не увидел.

Есть ли что-нибудь, что я должен искать в настройках проекта, что могло бы это сделать?

Я не хочу перестраивать проект в новом проекте — есть много связанных библиотек, сертификатов, cocoapods, элементов раскадровки, и я знаю, что было бы ужасно пытаться собрать все это в одно целое.

Моя цель развертывания установлена на iOS 11, Устройства: iPhone, Базовый SDK: iOS

Любая помощь была бы очень признательна!

Комментарии:

1. (добавляя, что панель навигации также опускается с того места, где она должна быть, что происходит и в реальном проекте)

Ответ №1:

Обычно это вызвано отсутствием правильного изображения запуска для iPhone X. Самый простой способ исправить это — указать целевому приложению не использовать изображения запуска (из пакета приложений или из каталога ресурсов), а вместо этого использовать LaunchScreen.storyboard. (Если у вас ее нет, создайте ее; обязательно установите ее в качестве раскадровки экрана запуска, нажав Использовать в качестве экрана запуска, и настройте свою цель так, чтобы она указывала на нее. Изучите простой ванильный новый проект, чтобы понять, что я имею в виду.) Возможно, вы не захотите сохранять все таким образом в долгосрочной перспективе, но, по крайней мере, это позволит вашему приложению запускаться в нужном размере на всех устройствах.

Комментарии:

1. Боже, это сделало это! Вау, я бы никогда не догадался ( смотрит на Apple ) — спасибо. Вы сказали, что это не постоянное решение — в чем опасность сохранения заставки в качестве VC?

2. О, никакой опасности. Это то, что я делаю. Я просто имел в виду, что ваш проект сейчас ее не использует, подразумевая, что они вам не нравятся. Итак, я просто сказал, что даже если вам не нравится раскадровка запуска, вы должны попробовать это решение, просто чтобы доказать себе, что это была проблема.