Форма SwiftUI TextField исчезает при переносе в обычный UINavigationViewController в iOS 13.2 - PullRequest
0 голосов
/ 08 ноября 2019

Итак, вот моя проблема, у меня есть полная форма, которую я написал в SwiftUI. В iOS 13.1 форма работала правильно. Теперь с iOS 13.2 текстовые поля в форме исчезают при прокрутке. Мне нужна форма для работы в проекте, который уже имеет много представлений UIKit, и поэтому я обернул форму в UIHostingController. Поэтому UIHostingController программно передается в UINavigationViewController из одного из моих других ViewControllers.

Чтобы продемонстрировать проблему, я создал чистый проект с использованием XCode 11.2 (11B52) и запустил его в симуляторе iOS 13.2. Поля исчезают. В iOS 13.1.2 поля работают должным образом.

Использование приведенного ниже кода в новом проекте, оборачивание представления раскадровки в UINavigationViewController и последующее подключение кнопки к showForm () приведет к тому, что яиспытываю.

import SwiftUI

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
extension ViewController {
    @IBAction func showForm() {
        navigationController?.pushViewController(FormViewController(), animated: true)
    }
}

struct FormView: View {
    @State private var text: String = ""
}
extension FormView {
    var body: some View {
        Form {
            ForEach(0..<100) { index in
                VStack {
                    Text("Question \(index)")
                    TextField("", text: self.$text)
                        .textFieldStyle(RoundedBorderTextFieldStyle())
                }
            }
        }
    }
}
class FormViewController: UIHostingController<FormView> {
    convenience init() {
        self.init(rootView: FormView())
    }
}

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

1 Ответ

0 голосов
/ 14 ноября 2019

Единственное исправление, которое я смог найти для этой проблемы, было вернуться к использованию UIKit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...