【问题标题】:view display on the right of the window查看窗口右侧的显示
【发布时间】:2022-03-08 16:25:38
【问题描述】:

您好,当我使用导航视图时,我在 Xcode 上的项目出现问题,窗口显示不正常并出现在已显示窗口的右侧,

这里是代码。

NavigationLink(destination: Acceuil())
                        {
                            HStack{
                               Image("icone_connexion")
                                    .font(.system(size: 15))
                                 //   .scaledToFill()


                                Text("se connecter")
                                        .font(.system(size: 30))
                          
                            }.cornerRadius(60)
                           .frame(width: 400, height: 60)
                            
                        } .background(Capsule().fill(Color(red: 55/255, green: 66/255, blue: 114/255, opacity:1)))
                        .frame(width: 400, height: 60) //fin navigationlink
                        .buttonStyle(PlainButtonStyle())

我希望新窗口替换旧窗口:)

【问题讨论】:

标签: xcode macos swiftui swiftui-navigationlink swiftui-navigationview


【解决方案1】:

在 macOS 上,NavigationView 中的标准行为是显示彼此相邻的视图(父视图和目标视图):https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/column-views/

如果你不想这样做,你可以这样做:

    NavigationView {
        ...
    }
    .navigationViewStyle(.stack)

【讨论】:

  • 感谢您的帮助,但它不起作用,搜索,据说这在 macOS 上不可用,所以我锁定了解决方案,我找到了这个 '.navigationViewStyle(StackNavigationViewStyle()) ' 但它也不起作用
  • upps ...我的错误。事实上,它在 macOS 中不可用。
  • 没有导航视图的问题的其他想法?
【解决方案2】:

所以我找到了这段代码

 import SwiftUI

    struct ContentView: View {
        @State private var show = false
        var body: some View {
            VStack{
                if !show {
                    RootView(show: $show)
                        .frame(maxWidth: .infinity, maxHeight: .infinity)
                        .background(Color.blue)
                        .transition(AnyTransition.move(edge: .leading)).animation(.default)
                }
                if show {
                    NextView(show: $show)
                        .frame(maxWidth: .infinity, maxHeight: .infinity)
                        .background(Color.green)
                        .transition(AnyTransition.move(edge: .trailing)).animation(.default)
                }
            }
        }
    }

    struct RootView: View {
        @Binding var show: Bool
        var body: some View {
            VStack{
                Button("Next") { self.show = true }
                Text("This is the first view")
            }
        }
    }

它对我有用,所以谢谢你的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多