SwiftUI提供了声明式和指令式两种方式来实现页面直接的导航,今天通过示例学习一下这两种的具体使用方式,包括NavigationView & NavigationLink的使用。
声明式
SwiftUI提供了NavigationView和NavigationLink,我们可以结合使用两者来实现 经典的列表页-详情页的跳转,示例代码如下:
image以上代码中,我们使用NavigationView将List进行包裹,从而对List页面添加导航栏,同时通过设置navigationBarTitle来添加导航栏标题(声明式UI在此体现的淋漓尽致),需要注意的是我们是对List而非NavigationView添加的navigationBarTitle,因为NavigationView下的所有子View共享导航栏,但是每个子View都可以设置单独的标题。
接下来我们对List的每个item使用NavigationLink来包裹,并指定destination View。这时我们的item将可以点击并跳转到对应的destination View。
指令式
有时候我们需要在符合某种条件时,才触发页面的跳转,NavigationLink通过另外一种方式提供了该种场景的支持。如下面代码所示:
image这种初始化方式中,使用了一个tag的目标值和selection的绑定值,当两者相等时,将触发导航的跳转。
image在详情页,我们可以通过调用presentation的dismiss()来实现popback。
【关注微信公众号 发现更多精彩】
网友评论