ios - SwiftUI Init 方法不适用于 ObservedObject 声明
问题描述
我正在尝试使用 Swift UI 在 Swift 中创建一个选项卡式应用程序。我正在使用 @ObservedObject 来存储应该呈现的当前视图名称。
我正在尝试更改 UI 选项卡栏的背景颜色,但是每次我添加初始化以覆盖该方法时都会开始处理错误,例如“传递给不带参数的调用的参数”。
我在下面附上了一段控制器代码。非常感谢解决此问题的任何帮助。
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 View {
ContentView(coreRouter: CoreRouter())
}
}
解决方案
由于您ContentView
有一个coreRouter
属性,您init
需要接受一个值来分配给该属性;
struct ContentView: View {
@State private var selection = 0
@ObservedObject var coreRouter: CoreRouter
init(coreRouter: CoreRouter) {
self.coreRouter = coreRouter
UITabBar.appearance().backgroundColor = UIColor.blue
}
}
推荐阅读
- c++ - 定义类 X 的析构函数,它继承自指向对象 Y 的指针向量并具有指向 Z 的指针数组
- c++ - std::visit 应该在从 std::variant 派生的类上工作吗?
- reactjs - 如何构建 React 应用程序以传递从子函数返回的值
- python-2.7 - 无法使用 apscheduler 在后台执行任务
- c# - Unity TextMeshProUGUI.text 为 NullReferenceException ...未设置为实例
- c# - 带有 AsyncLocal 与 Scope 服务的单例
- java - 如何将字符串拆分为多个部分
- python - 如何计算熊猫中多列的值?
- facebook - (#100) 对于字段 'insights': period 必须是以下值之一:day、week、days_28、month、lifetime",
- javascript - Rails 数据表重复控件