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

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

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

Для простоты я начал новый проект в XCode v11.6, построил целевую iOS 13.6, приложение с выбранными вкладками, создал очень простое шаблонное представление содержимого SwiftUI с двумя вкладками. (Для наглядности - код по умолчанию я вообще не менял). Отлично работает на симуляторе. Подключите мой 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()
    }
}

Заранее благодарю и извиняюсь за долгую прогулку - от очень сонного придурка!

0 ответов

Другие вопросы по тегам