首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调用中缺少参数‘编码器’的参数参数,在UIViewControllerRepresentable结构中

在调用中缺少参数‘编码器’的参数参数,在UIViewControllerRepresentable结构中
EN

Stack Overflow用户
提问于 2020-11-12 18:16:05
回答 1查看 131关注 0票数 0

我试图使用UITabBarController将一个UIViewControllerRepresentable包到SwiftUI视图中,但是遇到了一个我已经好几天没能解决的问题。我查看了每一个可能的线程,并尝试了所有提出的解决方案,没有任何运气。任何帮助都将不胜感激。

TabViewController.swift

代码语言:javascript
复制
import UIKit
import ResearchKit
import CareKit
import SwiftUI

struct TabBarView: UIViewControllerRepresentable {
    func makeUIViewController(context: Context) -> UITabBarController {
        let tabBarViewController = TabBarViewController()
        return tabBarViewController
    }
    
    func updateUIViewController(_ uiViewController: UITabBarController, context: Context) {
        
    }
    
    typealias UIViewControllerType = UITabBarController
    
    
}

class TabBarViewController: UITabBarController {
  fileprivate let carePlanStoreManager = CarePlanStoreManager.sharedCarePlanStoreManager
  fileprivate let carePlanData: CarePlanData
  fileprivate var symptomTrackerViewController: OCKSymptomTrackerViewController? = nil
  fileprivate var insightsViewController: OCKInsightsViewController? = nil
  fileprivate var insightChart: OCKBarChart? = nil
  
  required init?(coder aDecoder: NSCoder) {
    carePlanData = CarePlanData(carePlanStore: carePlanStoreManager.store)

    super.init(coder: aDecoder)

    carePlanStoreManager.delegate = self
    carePlanStoreManager.updateInsights()

    let careCardStack = createCareCardStack()
    let symptomTrackerStack = createSymptomTrackerStack()
    let insightsStack = createInsightsStack()
    let connectStack = createConnectStack()
    
    self.viewControllers = [careCardStack,
                            symptomTrackerStack,
                            insightsStack,
                            connectStack]
    
    tabBar.tintColor = UIColor.systemTeal
    tabBar.barTintColor = UIColor.white
  }

我还附上了一个屏幕截图,显示了确切的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-12 18:24:21

尝试将所有内容移入init中,如下所示(在本例中不需要编码器)

代码语言:javascript
复制
class TabBarViewController: UITabBarController {
    fileprivate let carePlanData: CarePlanData
    fileprivate var symptomTrackerViewController: OCKSymptomTrackerViewController? = nil
    fileprivate var insightsViewController: OCKInsightsViewController? = nil
    fileprivate var insightChart: OCKBarChart? = nil
    
    fileprivate let carePlanStoreManager = CarePlanStoreManager.sharedCarePlanStoreManager
    init() {
        carePlanData = CarePlanData(carePlanStore: carePlanStoreManager.store)
        
        super.init(nibName: nil, bundle: nil)
        
        carePlanStoreManager.delegate = self
        carePlanStoreManager.updateInsights()
        
        let careCardStack = createCareCardStack()
        let symptomTrackerStack = createSymptomTrackerStack()
        let insightsStack = createInsightsStack()
        let connectStack = createConnectStack()
        
        self.viewControllers = [careCardStack,
                                        symptomTrackerStack,
                                        insightsStack,
                                        connectStack]
        
        tabBar.tintColor = UIColor.systemTeal
        tabBar.barTintColor = UIColor.white
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64809497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档