SwiftUI TabView не отвечает

#ios #xcode #swiftui #swiftui-tabview

#iOS #xcode #swiftui #swiftui-tabview

Вопрос:

🙂 Здесь возникает, вероятно, глупая проблема с небольшой преамбулой, извините!

Короче говоря, я разрабатывал приложение, которое выводило меня из себя из-за ошибки с TabView в SwiftUI. Я накладывал вкладки с помощью ZLayer, чтобы добавить большую кнопку в середине, поэтому, когда я столкнулся с проблемами, я подумал, что это будет проблемой… но через мгновение это становится неактуальным.

Для простоты я запустил новый проект в XCode версии 11.6, создал целевую версию iOS 13.6, выбрал приложение с вкладками, создал очень простое шаблонное представление содержимого SwiftUI с 2 вкладками. (Для ясности — я вообще не изменял код по умолчанию). Отлично работает на симуляторе. Подключите мой iPhone XS под управлением iOS 13.6.1 (когда я впервые столкнулся с этой проблемой, я был на 13.5, поэтому обновил сборки iOS, пока возникла эта проблема). Запустите простое, неизменяемое приложение на моем телефоне. Загружается «Первый просмотр», я нажимаю «Вторую» вкладку, ничего. Ответа вообще нет. Это та же проблема, с которой я сталкиваюсь в моем более сложном приложении. Иногда, если я продолжаю перестраивать. Это позволит мне переключиться на «Второй просмотр», но затем не сможет переключиться обратно. Контроллер вкладок, похоже, просто перестает реагировать.

Теперь вернемся к моему более сложному приложению, в первом представлении есть вид прокрутки и кнопка с прикрепленной таблицей действий. Если я открываю таблицу действий, а затем закрываю ее (независимо от простого вызова кнопки .cancel () или выбора действия), контроллер вкладок работает отлично. Есть другой вариант, который открывает другой лист, опять же, как только что-то было наложено, все работает должным образом до следующего запуска приложения.

Пытался сбросить настройки моего MacBook, пытался сбросить настройки моего iPhone, пытался удалить сборку, затем перестроить, очистить папку сборки, пытался создать несколько проектов с целями сборки iOS 13, 13.2, 13.5, 13.6. Проблема, похоже, сохраняется, но каждый раз симулятор работает отлично.

Итак, мои вопросы здесь: Из моего поиска я не могу найти никого с этой проблемой. Это только у меня на самом деле? Может ли кто-нибудь с XCode 11.6 и iPhone XS, пожалуйста, просто нажать «Новый проект» -> «Приложение с вкладками» и сообщить мне, работает ли это? (Мне почти интересно, есть ли ошибка в XCode 11.6, когда вы создаете приложение, и все либо работают над проектами, которые уже были созданы до XCode 11.6, либо уже используют бета-версию XCode… Но на самом деле у меня просто нет идей) Также можно ли выполнить какую-либо более глубокую отладку? Что-то вроде фактического уведомления меня о каждом полученном касании и о том, получает ли приложение «песочница» касание или ОС (по какой-то причине) сохраняет жест касания? Я никогда не сталкивался с чем-то подобным, поэтому я не могу понять, с чего начать отладку, поскольку я даже не знаю, получает ли приложение нажатие. Или, честно говоря, у кого-нибудь есть другие идеи?

Просто для наглядности — contentView выглядит следующим образом: (Опять же, это прямо из того, что XCode создает для приложения с вкладками)

 import SwiftUI

struct ContentView: View {
    @State private var selection = 0
 
    var body: some View {
        TabView(selection: $selection){
            Text("First View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("first")
                        Text("First")
                    }
                }
                .tag(0)
            Text("Second View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("second")
                        Text("Second")
                    }
                }
                .tag(1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
  

Заранее спасибо и извините за длинный бред — от очень сонного разработчика в wits’ end!

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

1. У меня такая же проблема в Xcode 13.x. Вы нашли какое-либо решение?