Tag: 路由

#3 iOS —重塑视图控制器导航

注意:此屏幕快照中定义的域将无法使用,因为它不会返回 与您的团队ID相匹配的 正确的 apple-app-site-association 文件。 您必须配置自己的域,并确保 apple-app-site-association 文件在网络上可用。 用例 应用程序具有一个可以接收UIColor视图控制器ColorViewController ,并且具有颜色选择器,该颜色选择器触发导航到相同的视图控制器类型,并将所选颜色作为数据传递给新实例。 应用程序可以打开一个深链接URL,该URL的路径中包含十六进制字符串。 应用程序应将十六进制字符串映射到UIColor并将其传递给ColorViewController 。 应用程序应使用以下URL格式打开ColorViewController ,并在背景中显示适当的颜色: https:// DOMAIN / color / COLOR_HEX_STRING http:// DOMAIN / colour / COLOR_HEX_STRING https:// DOMAIN / color / COLOR_HEX_STRING http:// DOMAIN / colour / COLOR_HEX_STRING 目的地 它不过是一个简单的视图控制器包装器,它提供了一些附加功能并简化了截断数据(从URL提取的数据)的填充。 Destination的resolve方法是将URL中的参数映射到目的地视图控制器可以接收的数据的地方。 此类目的地需要与URL模式字符串一起注册。 这些用于CoreNavigation的路由匹配机制。 应用委托 注意AppDelegate类中的registerRoutes()方法。 它说任何与传递的数组中的任何字符串匹配的URL都应解析为Color目标类型。 以:冒号)字符开头的所有参数占位符将替换为从URL提取的数据,并传递给Color的resolove(context:)方法。 定义参数占位符的格式: :PARAMETER_NAME 要么 :PARAMETER_NAME(REGEX_MATCH_PATTERN) 访问提取的参数: 让parameter […]

iOS应用程序中的URL路由:《指南针初学者指南》

应用程序通常具有许多屏幕, UIViewController可以与显示和导航API一起很好地用作屏幕的基础。 一切都很好,直到您迷失在流的森林中,并且代码变得难以维护。 避免这种情况的一种方法是中央URL路由方法。 可以将其视为处理并解决所有路由请求的网络路由器。 这样,代码就变成了声明性的和解耦的,因此列表组件不需要知道它所呈现的内容。 URL路由还使日志记录和跟踪变得容易,并且易于处理外部请求(例如深链接)。 有多种执行URL路由的框架。 在本教程中,为简单起见,将使用Compass。 您将重构一个现有应用程序,这是一个名为PhotoFeed的简化的Instagram应用程序。 完成本教程后,您将知道如何在Compass中声明和使用路由器以及如何处理深层链接。 下载入门项目并解压缩。 转到PhotoFeed文件夹并运行pod install安装此项目的特定依赖项。 打开PhotoFeed.xcworkspace并运行项目。 点击登录以转到Instagram登录页面并输入您的Instagram凭据,然后浏览一下该应用程序。 主应用程序由UITabBarController ,其中显示了提要,当前登录的用户配置文件和菜单。 这是一个典型的Model View Controller项目,其中UIViewController处理Cell委托并负责导航。 为简单起见,所有视图控制器都继承自TableController和CollectionController ,它们知道如何管理特定模型和单元的列表。 所有型号均符合新的Swift 4 Codable协议。 在Instagram上注册您的应用 为了使用Instagram API,您需要在Instagram Developer上注册您的应用程序。 获取您的client id ,切换回项目。 转到APIClient.swift并修改您的clientId 。 注意 :该项目随附具有受限权限的默认应用。 该应用程序无法访问关注或关注者API,并且您只能看到自己的帖子和评论 指南针的概念非常简单:您拥有一组路线以及用于处理这些路线的中心位置。 将路线视为到应用内特定屏幕的导航请求。 URL路由背后的想法是从现代Web服务器中借用的。 当用户在浏览器中输入URL,例如https://flawlessapp.io/for-teams时,该请求将从浏览器发送到Web服务器。 服务器解析URL并返回请求的内容,例如HTML或JSON。 大多数Web服务器框架都支持URL路由,包括ASP.NET,Express.js等。 例如,这是您在express.js中处理URL路由的方式: app.get(’/ api / category /:categoryTag’,函数(req,res){ const page = getCategoryPageFor(req.params.categoryTag) res.send(页面) […]