小编Rs *_*ics的帖子

从 UIHostingController 中的 SwiftUI 调用函数

我有一个 swift UIHostingController,它呈现 SwiftUI。我在视图中调用了一个函数,它确实出现了,它构建得很好,但没有创建预期的输出。

class LoginView: UIHostingController<LoginViewComponent> {
    required init?(coder: NSCoder) {
        super.init(coder: coder, rootView: LoginViewComponent())
    }

    override func viewDidAppear(_ animated: Bool) {
        sessionHandler()
    }

    func sessionHandler(){
        let user = User()
        if user.isLoggedIn(){
            view.isUserInteractionEnabled = false
            print("Authenticating Session")
            self.rootView.loginState(state: "success")
        }else{
            view.isUserInteractionEnabled = true
            print("Needs Logging in")
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

函数 ("loginState(state: "success")") 在 SwiftUI 视图类中调用时有效,但是当从托管控制器调用时它不起作用。

任何帮助将不胜感激。

xcode ios swift swift5 swiftui

6
推荐指数
1
解决办法
2552
查看次数

SwiftUI Init 方法不适用于 ObservedObject 声明

我正在尝试使用 Swift UI 在 Swift 中创建一个选项卡式应用程序。我正在使用 @ObservedObject 来存储应呈现的当前视图名称。

我试图更改 UI 选项卡栏的背景颜色,但是每次我添加 init 来覆盖该方法时,都会开始抛出错误,例如“传递给不带参数的调用的参数”。

我在下面附上了控制器代码的片段。非常感谢任何解决此问题的帮助。

import SwiftUI

struct ContentView: View {
    @State private var selection = 0

    @ObservedObject var coreRouter: CoreRouter

    init() {
         UITabBar.appearance().backgroundColor = UIColor.blue
     }

    var body: some View {
        TabView(selection: $selection){
            Text("First Screen")
                .font(.title)
                .tabItem {
                    VStack {
                        Image(systemName: "house")
                        Text("Home")
                    }
            }
            .tag(0)
            Text("Second View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("calendar")
                        Text("New Items")
                    }
            }
            .tag(1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift5 swiftui

1
推荐指数
1
解决办法
2901
查看次数

标签 统计

ios ×2

swift ×2

swift5 ×2

swiftui ×2

xcode ×2