gpt4 book ai didi

ios - 路由毒蛇架构

转载 作者:可可西里 更新时间:2023-11-01 06:01:36 24 4
gpt4 key购买 nike

如何在 Viper 架构的项目中创建良好的路由?我开始为路由创建文件,但我不明白接下来我必须做什么。

我先创建文件线框 Controller 和线框协议(protocol):

//  ChooseLanguageWireframeProtocol.swift

import UIKit

@objc protocol ChooseLanguageWireframeProtocol {
func presentChooseLanguageViewControllerWindow()
func presentAuthScreenViewController()
}

在文件线框图中我添加:

//  ChooseLanguageWireframe.swift

import UIKit

class ChooseLanguageWireframe: NSObject , ChooseLanguageWireframeProtocol{

var chooseLanguageScreenViewController: ChooseLanguageViewController?
var window: UIWindow?

func presentChooseLanguageViewControllerWindow() {
let chooseLanguageViewController = UIStoryboard.init(name: "ChooseLanguage", bundle: nil).instantiateViewController(withIdentifier: "ChooseLanguage") as? ChooseLanguageViewController
self.chooseLanguageScreenViewController = chooseLanguageViewController
self.window!.rootViewController = chooseLanguageScreenViewController
self.window!.makeKeyAndVisible()
}
func presentAuthScreenViewController() {

}
}

在我创建 RootWireframe 之后

//  RootWireframe.swift

import UIKit

class RootWireframe: NSObject {

let chooseLanguageScreenWireframe : ChooseLanguageWireframe?

override init() {
//What i must init??
}

func application(didFinishLaunchingWithOptions launchOptions: [AnyHashable: Any]?, window: UIWindow) -> Bool {
self.chooseLanguageScreenWireframe?.window = window
return true
}

}

在文件 AppDelegate 中我只改变

var window: UIWindow?
let rootWireframe = RootWireframe()

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.rootWireframe.application(didFinishLaunchingWithOptions: launchOptions as [NSObject : AnyObject]?, window: self.window!)
}

我必须添加或更改什么才能正常工作?

最佳答案

一种方法是继承 UINavigationController 并在其中执行路由逻辑。根据您的任务,您最终可能会在应用程序的不同部分使用多个类进行路由。

但就像使用任何流行的流行语一样,您首先必须问自己如果“解决方案”解决的问题多于它产生的问题。

当你看到两打屏幕并开始迷失时,它就开始有意义了很久以前通过将 Storyboard添加到普通的旧 xibs。

所以你真的要退后一步,问问自己是否真的要跟随这个 cromulent 架构在这个过程中创建了很多很多的类,一个与标准 MVC 项目相比几乎没有可读性的迷宫。

如果你不能使用 Storyboard,但想使用 VIPER,请这样做,如果你可以使用 Storyboard做 VIPE :-)

但在大多数项目中,数据模型简单得可怜,而且演示文稿是如此紧密耦合,你有零需要UIViewController 去脂。

而且我怀疑大多数毒蛇爱好者采用的治疗方法是比死亡本身更糟糕。

关于ios - 路由毒蛇架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388435/

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