#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 = context.parameters?[“ PARAMETER_NAME”]表示为? 串
在此示例中,路由模式是硬编码的。 但是,它们可以在服务器端生成并提供给应用程序,因此它将始终与网站及其URL保持同步。
NSUserActivity导航扩展
CoreNavigation支持导航到URL
类型,因此只需导航到它即可。
编码愉快!
aronbalog / CoreNavigation
CoreNavigation –📱📲轻松在视图控制器之间导航。 💫github.com