以非模态方式呈现视图

Posted

技术标签:

【中文标题】以非模态方式呈现视图【英文标题】:Present a View Non-Modally 【发布时间】:2019-06-10 15:41:58 【问题描述】:

我正在为我的应用创建登录页面,并希望以用户无法返回的方式显示主屏幕。在 Swift UI 中,如何呈现它以使新视图不会以卡片式样式呈现?我知道这种演示风格现在是 ios 13 的默认设置。

这是我已经拥有的。

import SwiftUI

struct Test : View 
    var body: some View 
        PresentationButton(Text("Click to show"), destination:   Extra()  )
    

我希望视图呈现全屏。

【问题讨论】:

【参考方案1】:

使用NavigationViewNavigationButton 并隐藏目标视图导航栏的后退按钮。

例如:

struct ContentView : View 
    let destinationView = Text("Destination")
        .navigationBarItem(title: Text("Destination View"), titleDisplayMode: .automatic, hidesBackButton: true)

    var body: some View 
        NavigationView 
            NavigationButton(destination: destinationView) 
                Text("Tap Here")

            
        
    

您还可以通过 let destinationView = Text("Destination").navigationBarHidden(true) 完全禁用目标视图的导航栏。

【讨论】:

以上是关于以非模态方式呈现视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在所有其他视图之前以模态方式呈现“启动视图”?

视图控制器以模态方式呈现/关闭时的通知?

当视图控制器以模态方式呈现时,用户可以滚动

以编程方式创建和呈现模态视图控制器

如何在不使用 presentViewController 的情况下以模态方式呈现自定义视图?

在呈现模态视图时显示 UITabBar