目前,我在工作表中有一个导航链接。这会在该工作表内创建一个新页面,而不是占据整个屏幕。有没有办法关闭工作表,然后在原始屏幕上显示视图?
带有拉起表格的按钮的原始视图:
Button {
userTappedItem = item
} label: {
...
}
.sheet(item: $userTappedItem) {
} content: { item in
NewView(item: item)
}
Run Code Online (Sandbox Code Playgroud)
NewView 中的 NavigationLink:
NavigationLink {
ViewIWantAsFullScreen()
} label: {
...
}
Run Code Online (Sandbox Code Playgroud) 在以前的 iOS 版本中,我以编程方式推送了一个 NavigationLink
NavigationLink(isActive: $searched, destination: { SearchView(originalSearchPhrase: $searchedPhrase) }, label: {})
Run Code Online (Sandbox Code Playgroud)
并在我想要推送 isActive 变量时切换它。但是,在 iOS16 中,所有带有 isActive 的 NavigationLink 均已弃用。还有办法以编程方式推送 NavigationLinks 吗?
我正在尝试使用几何读取器获取滚动视图的位置。但是,我注意到它给了我不同的值,具体取决于我是否将其嵌入到 NavigationView 中。这是一个例子:
struct ContentView: View {
@State var headerLocation: CGFloat = 0
var body: some View {
ZStack(alignment: .top) {
Color.white
.ignoresSafeArea()
VStack(spacing: 0) {
ZStack {
Text("test.username")
.font(.custom("Helvetica Bold", size: 18))
}
.frame(height: 40)
.overlay(alignment: .bottom) {
GeometryReader { geo -> Color in
let minY = geo.frame(in: .global).minY
DispatchQueue.main.async {
if headerLocation == 0 {
headerLocation = minY
}
}
return Color.blue
}
.frame(width: 100, height: 1)
}
ScrollView {
VStack(spacing: 8) {
Text("Lorem ipsum dolor sit amet, …Run Code Online (Sandbox Code Playgroud)