Почему код SwiftUI запускается / обновляется на iPhone, а не на iPad? - PullRequest
0 голосов
/ 28 мая 2020

Я просматривал этот код и другой похожий код на прошлой неделе, и у меня возник вопрос.

Приложение (ссылка на код ниже) представляет собой простое приложение из 5 вопросов в SwiftUI. Используя симулятор iPhone 11, викторина проходит отлично, и когда вы нажимаете обратную навигационную ссылку и нажимаете кнопку «Начать тест», викторина запускается снова. Однако на iPad кнопка «Начать тест» не работает для перезапуска викторины.

Я подумал, поскольку оба работают одинаково IOS, они должны работать одинаково, но это не так. Пробовал на своем физическом iPad и то же самое. Выполняет викторину один раз и не запускается во второй раз. Кто-нибудь знает, почему? Спасибо за помощь!

https://github.com/albypanz94/Quiz-Game-in-SwiftUI.git

1 Ответ

0 голосов
/ 29 мая 2020

Проблема в том, что модель навигации SwiftUI по умолчанию основана на UISplitview, и что на iPad навигационная ссылка «Начать тест» передает навигацию на второй контроллер. На iphone второй контроллер свернут.

Для игры это означает, что для iPad (и больших iPhone в ландшафтном режиме) игра не может быть перезапущена.

Вы также можете обнаружить аномалии, если запустили игру в большом формате iPhone, а затем повернули его в середине игры.

Вы можете изменить стиль представления навигации, чтобы не использовать модель разделения представления используя:

.navigationViewStyle(StackNavigationViewStyle())

после закрывающей скобки NavigationView.

...