NavigationView的内容未显示SwiftUI

时间:2019-12-23 19:53:22

标签: swift xcode swiftui

我正在尝试在SwiftUI中创建一个带有单个NavigationLink的NavigationView。到目前为止,我的代码是:

import SwiftUI

struct HomeView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)


            .navigationBarTitle(Text("Home"))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView()
    }
}

在实时预览中或在模拟器上运行时,什么都不会显示。实时预览如下:

SwiftUI live preview example 1

如果我稍微更改代码并复制NavigationLink,那么我可以显示其中一个NavigationLinks。

struct HomeView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)

            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)

            .navigationBarTitle(Text("Home"))
        }
    }
}

SwiftUI live preview example 2

我正在尝试制作一个包含指向其他SwiftUI屏幕视图文件的多个链接的主页。任何帮助表示赞赏!

谢谢。

3 个答案:

答案 0 :(得分:2)

代替这个

NavigationLink(destination: PlayersView()) {
    Text("Players")
        .foregroundColor(.white)
        .padding(12)

}
.background(Color.black)
.cornerRadius(12)

执行此操作

NavigationLink(destination: PlayersView()) {
    Text("Players")
        .foregroundColor(.white)
        .padding(12)
        .background(Color.black)
        .cornerRadius(12)
}

更新:我想我遇到了您的问题,起初我是自动通过的。 NavigationView是特定于平台的。默认情况下,iPad具有“主/详细信息”导航样式,根据方向的不同,它的显示方式也不同,因此您不会在“预览”链接中看到该内容,因为“预览”在“纵向”中,而导航链接在“侧边栏”中,该边栏是隐藏的。

如果要在这样的预览中查看它,则需要对.navigationViewStyle(StackNavigationViewStyle())使用NavigationView。或者,在您的变体中,只需在Simulator中运行应用程序,然后使用CMD-Left/Right arrow旋转Simulator。

注意:目前无法旋转预览。以防万一。

答案 1 :(得分:0)

如果您使用的是iPad,我想说第一个def modified_roll(inp, shift: int, operations: int): """ @param inp: Input array to perform the modified roll on @param shift: Part of the array that gets shifted @param operations: Number of operations @return: Returns a shifted array, with zeros at the start """ count = 0 array = array_rolled = inp for k in range(operations): count += shift array = np.roll(array, shift, axis=0) array[:count] = 0 array_rolled += array out = array_rolled / operations return out 是作为草图/索引视图工作的,您可以向右滑动以将其取出。

答案 2 :(得分:0)

尝试一下,最初我也遇到问题,但是尝试这种方式对我有用!

  var body: some View 
  {
      NavigationView 
     {
           VStack(alignment: .center)
              {
                  //Your ui designs
              } 
       .navigationBarTitle(Text("Forgot 
        Password").font(.largeTitle).fontWeight(.medium), displayMode: .inline)

      }
  }