Ios 如何使用构建器模块(UIKit)在SwiftUI中全屏显示视图控制器?
伙计们!我是iOS开发的新手,我遇到了一些麻烦。。。 我在架构-VIPER/B中使用SwiftUI。这是我在ios开发中使用此堆栈的第一步 我从 因此,我有一个func来构建我的模块,它返回给我ViewController:Ios 如何使用构建器模块(UIKit)在SwiftUI中全屏显示视图控制器?,ios,swift,swiftui,uikit,viper,Ios,Swift,Swiftui,Uikit,Viper,伙计们!我是iOS开发的新手,我遇到了一些麻烦。。。 我在架构-VIPER/B中使用SwiftUI。这是我在ios开发中使用此堆栈的第一步 我从 因此,我有一个func来构建我的模块,它返回给我ViewController: final class HomeModule: ModuleInterface { typealias View = HomeView typealias Presenter = HomePresenter typealias Router = HomeRouter typ
final class HomeModule: ModuleInterface {
typealias View = HomeView
typealias Presenter = HomePresenter
typealias Router = HomeRouter
typealias Interactor = HomeInteractor
func build() -> UIViewController {
let presenter = Presenter()
let interactor = Interactor()
let router = Router()
let viewModel = HomeViewModel()
let view = View(presenter: presenter, viewModel: viewModel)
.environmentObject(AppEnvironment())
presenter.viewModel = viewModel
self.assemble(presenter: presenter, router: router, interactor: interactor)
let viewController = UIHostingController(rootView: view)
router.viewController = viewController
return viewController
}
之后,我在路由器中调用此func:
final class LoginRouter : LoginRouterProtocol {
weak var presenter : LoginPresenter!
weak var viewController: UIViewController!
func presentHomeScreen() {
viewController.present(HomeModule().build(), animated: true, completion: nil)
}
除了作为viewController.present
,而且,弱变量viewController:UIViewController,我没有想到任何其他方法来调用构建器模块代码>已在原始模板中宣布,并提示viewController.present
因此,当我在视图中调用这个func时,我会以模式获得ViewController,但无法获得全屏演示
我的演示者中的Func:
var router : LoginRouter!
func login() {
router.presentHomeScreen()
}
在我看来:
Button(action: {
self.login()
}) {
Text("Log in")
}
func login() {
presenter.login()
}
请帮我在全屏模式下演示,我想在默认的NavigationController中显示segue-like:当新的ViewController从左到右出现时。此外,我尝试使用NavigationLink,但参数destination必须获取类型“View”,而不是ViewController。。。这给了我一个错误:
Type '()' cannot conform to 'View'; only struct/enum/class types can conform to protocols
您的想法是什么?viewController.modalPresentationStyle=.fullScreen
您可以在之前将此添加到presentHomeScreen函数中吗present@MShah我试过了,但这是无用的viewController.modalPresentationStyle=.fullScreen
你能在前面的presentHomeScreen函数中添加这个吗present@MShah我试过这个,但这是没有用的