gpt4 book ai didi

ios - Swinject - 如何从一个解析器解析同一个 Controller 两次?

转载 作者:行者123 更新时间:2023-11-28 11:49:41 27 4
gpt4 key购买 nike

import Swinject

class GenericsAssembly: Assembly {
func assemble(container: Container) {
container.register(TabBarController.self) { resolver in
let split1 = resolver.resolve(SplitViewController.self)!
let split2 = resolver.resolve(SplitViewController.self)!
split1.tabBarItem = UITabBarItem(title: "1", image: UIImage(named: "icon-notepad"), selectedImage: nil)
split2.tabBarItem = UITabBarItem(title: "2", image: UIImage(named: "icon-chat"), selectedImage: nil)
let controller = TabBarController(view: resolver.resolve(TabBarView.self)!)
controller.viewControllers = [
tasksSplitViewController,
threadsSplitViewController
]
return controller
}
container.register(SplitViewController.self) { _ in
return SplitViewController()
}
container.register(TabBarView.self) { _ in
return TabBarView()
}
}
}

而且...底部只有一个TabBarItem。为什么?

如果我这样使用它:

let split1 = SplitViewController()
let split2 = SplitViewController()

那么一切都很好。;) 在我的实现中,Swinject 有什么问题?

最佳答案

你可以尝试使用这个:

container.register(SplitViewController.self, name: "second") { _ in
return SplitViewController()
}

let split2 = container.resolve(SplitViewController.self, name: "second")

以其他方式容器将返回已经解析的 Controller

关于ios - Swinject - 如何从一个解析器解析同一个 Controller 两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52000129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com