地方信息平台网站源码分享?地方平台公司是什么意思

本篇文章给大家谈谈地方信息平台网站源码分享,以及地方平台公司是什么意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

我知道,我们都对NavigationView束手无策,准备和它说再见。

背景

老实说,NavigationView很糟糕。除了众多限制之外,开发人员还必须处理大量错误并添加变通方法。

我们在Canopas也不例外!

虽然我们对新的SwiftUI感到非常兴奋,并准备将其集成到一些生产项目中,但导航总是很痛苦。我们甚至开发了一个库UIPilot来使导航尽可能简单。

2-3年后,Apple终于意识到我们需要全新的东西,于是NavigationStack出现了。

NavigationStack提供了NavigationView缺乏的功能,例如提供类似于路由器系统的视图等等。

让我们探索如何使用NavigationStack进行基本的导航操作。

大纲

今天,我们将讨论涵盖95%用例的5个场景。根据需要随意跳来跳去。

推屏:A?A—B弹出最后一个屏幕:A—B?A弹出多个屏幕:A—B—C—D?A—B弹出到根:A—B—C—D?A更新根:A?B

让我们开始吧!

1.推屏:A?A—B

推送屏幕是一件非常简单的事情。让我们从定义NavigationStack开始。

structContentView:View{\n@ObservedObject\nvarrouter=Router<Path>()\n\nvarbody:someView{\nNavigationStack(path:$router.paths){\nScreenA()\n.navigationDestination(for:Path.self){pathin\nswitchpath{\ncase.A:ScreenA()\ncase.B:ScreenB()\n}\n}\n}.environmentObject(router)\n}\n}

让我们在这里了解NavigationStack的结构。

我们已经定义了一个变量路由器来跟踪屏幕堆栈。当我们想要推送/弹出屏幕时,我们将对其进行更新。这使我们能够非常轻松地以编程方式更新屏幕。我们已经将该变量传递给NavigationStack,因此它将了解要显示哪些屏幕。在内容中,我们定义了ScreenA,它将是屏幕的根,不能更改。稍后我们将看到如何绕过这个限制。现在是有趣的部分navigationDestination。它允许我们将Route映射到Views。例如,这里我们希望enum.A应显示ScreenA,而enum.B应显示ScreenB。最后,我们将这个路由器作为environmentObject注入,因此在所有屏幕上都可以轻松访问它。

而已。现在让我们添加路由器和屏幕的定义。

finalclassRouter<T:Hashable>:ObservableObject{\n@Publishedvarpaths:[T]=[]\nfuncpush(_path:T){\npaths.append(path)\n}\n}\n\nenumPath{\ncaseA\ncaseB\n}\n\nstructScreenA:View{\n\n@EnvironmentObjectvarrouter:Router<Path>\n\nvarbody:someView{\nButton{\nrouter.push(.B)\n}label:{\nText(&34;)\n}.navigationTitle(&34;)\n}\n}\n\nstructScreenB:View{\nvarbody:someView{\nText(&39;mcontentofscreenB&34;B&34;Popme&34;B&34;PoptoscreenB&34;D&34;PoptoRoot&34;D&34;ReplacewithB&34;A”)\n}\n}

好吧,仅此而已!单击按钮,您将看到ScreenA替换为ScreenB。

结论

希望您对NavigationStack的工作原理有一个基本的了解。这很容易学习。

但是,添加额外的辅助类(如Router和RouterView)会使常见用例更加简单。

请记住,NavigationStack仅在iOS16上可用,这意味着您必须根据操作系统版本管理两种不同的实现!

不过不用担心,我们将更新我们的UIPilot库并使其向后兼容,以便它在新平台上使用NavigationStack并在旧版本上回退到NavigationView。UIPilot是一个非常小的库,可能只是您在此处看到的Router和RouterView类的组合。

好消息是,不会有API更改,因此您只需更新UIPilot版本即可开始使用NavigationStack。

与往常一样,非常欢迎您的反馈和建议,请将它们留在下面的评论部分。

关注七爪网,获取更多APP/小程序/网站源码资源!

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平