【问题标题】:SwiftUI Freeze deviceSwiftUI 冻结设备
【发布时间】:2019-12-03 08:58:28
【问题描述】:

我有一个 ListNavigationLinkNavigationView 和一个 Button 用于显示模式。

当我显示细节时没有问题,但如果我打开模式并显示细节不起作用。 我的设备 (iPhone XS) 因 CPU 100% 而死机。

代码模态:


import SwiftUI
import Combine

struct RoomFormView: View {
    @ObservedObject var viewModel : RoomFormViewModel
    @Binding var show : Bool

    var body: some View {
        NavigationView {
            VStack(alignment: .leading, spacing: 5) {
                Text("Nom de la pièce")
                TextField("Nom", text: self.$viewModel.name) {
                    HelperView.closeKeyboard()
                }
                Spacer().frame(width: nil, height: 15, alignment: .center)
                Text("Etage")
                TextField("Etage", text: self.$viewModel.floor) {
                    HelperView.closeKeyboard()
                }
                Spacer()
                }.padding(22)
            .navigationBarItems(leading: Button(action: {
                self.show = false
            }) {
                Text("Annuler")
            }, trailing:                     Button(action: {
                HelperView.closeKeyboard()
                self.viewModel.validate()
                self.show = false
            }, label: {
                Text("Valider")
                })).navigationBarTitle("Ajouter une pièce")
        }
    }
}

【问题讨论】:

  • 如果您向我们展示 ListRoomViewModel,我们可以尝试重现......所以我们可以猜测......
  • 我认为问题在于更复杂的视图。当我打开和关闭工作表时,所有列表都会刷新。
  • 你也没有向我们展示 RoomFormView 的代码......所以......你的问题还不够好......也许你应该阅读这个。 stackoverflow.com/help/how-to-ask

标签: ios swift swiftui


【解决方案1】:

错误在于.navigationBarTitle("Ajouter une pièce") 应用程序冻结带有重音 éè

当我删除重音时没问题。真正的解决方案是使用Text("Ajouter une pièce")

最终代码:.navigationBarTitle(Text("Ajouter une pièce"))

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 2021-08-08
    • 2019-12-15
    • 2015-11-19
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多