【发布时间】:2019-07-10 08:41:13
【问题描述】:
我希望能够在我的一个视图上按下按钮时显示一个新视图。
从我看过的教程和其他回答的问题来看,似乎每个人都在导航视图中使用导航按钮,除非我错误地导航视图是给我一个菜单栏右箭头的那个我的应用程序顶部所以我不想要那个。当我将导航按钮放在不是 NavigationView 子视图的视图中时,它只是在 UI 上被禁用并且我无法单击它,所以我想我不能使用它。
我看到的其他示例似乎使用了演示链接/按钮,它们似乎显示了一种弹出视图。
我只是在寻找如何单击常规按钮并全屏显示另一个视图,就像在旧的做事方式中执行 segue 一样。
【问题讨论】:
-
#1。在
UIKit中,有两种方法可以执行“segue”。第一种使用Storyboard,SwiftUI中(明确)不存在。第二种?UINavigationController。当你推/弹出它是“ stack" 您可以免费获得动画。是的,您可以设置它的标题,并将左/右按钮设置为“显示”为空,但您仍然拥有栏。除了这个之外,你在 UIKit 中唯一可以做的事情(当然,以模态方式呈现一个新视图)是创建一个包含你想要的子视图的容器视图,并创建动画以“看起来”像一个 segue。 -
#2。如果没有在
UIKit中写下所有这些然后创建UIViewControllerRepresentable,您可能会使用NavigationView并通过ZStack“隐藏”您不喜欢的东西,放置会掩盖这些视图的视图. -
猜猜它必须是一个导航视图,看起来很糟糕,你不能只呈现一个没有导航栏的新视图,然后隐藏一堆你不想看到的东西
-
如果你理解我的第一条评论,你真的不能在
UIKit中这样做。这真的不是关于“导航”或“segue”,而是关于堆栈。我描述的那种容器视图你可以在UIKit中编码,以及几乎完全在UIView中的动画(并且完全没有堆栈),但是你仍然需要一个视图控制器来实际将它连接到@ 987654332@。 (我实际上已经这样做了,并最终嵌入了UINavigationController作为子 VC。)也许 Apple 会在未来版本的 SwiftUI 中对此进行扩展,但我个人希望先做一个“共享”视图。 -
你可以通过
.navigationBarTitle("").navigationBarHidden(true)来隐藏导航栏。如果你想让它可点击,我想你可以只用NavigationView和所有其他视图在单独的文件中创建一个MainView。我相信他们会解决后一个问题。
标签: swiftui