gpt4 book ai didi

ios - SwiftUI 中 UISplitViewController 的等价物是什么

转载 作者:行者123 更新时间:2023-12-01 17:14:52 25 4
gpt4 key购买 nike

我需要实现一个接近 iPad 和 iPhone 中默认邮件应用程序的 UI。

该应用程序有两个部分,通常在 iPad 中,主 View 将显示在左侧,详细 View 将显示在右侧。

在手机中,主 View 将显示在整个屏幕上,详细 View 可以作为第二个屏幕推送。

如何在新的 SwiftUI 中实现它

最佳答案

SwiftUI 中并没有真正的 SplitView,但是当您使用以下代码时,您描述的内容会自动完成:

import SwiftUI

struct MyView: View {
var body: some View {
NavigationView {
// The first View inside the NavigationView is the Master
List(1 ... 5, id: \.self) { x in
NavigationLink(destination: SecondView(detail: x)) {
Text("Master\nYou can display a list for example")
}
}
.navigationBarTitle("Master")
// The second View is the Detail
Text("Detail placeholder\nHere you could display something when nothing from the list is selected")
.navigationBarTitle("Detail")
}
}
}

struct SecondView: View {
var detail: Int
var body: some View {
Text("Now you are seeing the real detail View! This is detail \(detail)")
}
}

这也是为什么 .navigationBarTitle()修饰符应该应用于 NavigationView 内部的 View ,而不是 NavigationView 本身。

奖励:如果您不喜欢 splitView 导航 View 样式,您可以应用 .navigationViewStyle(StackNavigationViewStyle()) NavigationView 上的修饰符。

编辑:我发现 NavigationLink 有一个 isDetailLink(Bool)修饰符。默认值似乎是 true ,因为默认情况下“目的地”显示在详细 View 中(右侧)。但是当你将此修饰符设置为 false 时,目的地显示为主人(在左侧)。

关于ios - SwiftUI 中 UISplitViewController 的等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57398055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com