相关疑难解决方法(0)

NavigationLink 只工作一次

我正在开发一个登录应用程序,登录后列出了类别。在每个类别下都有一些水平列出的项目。事情是登录后,主页面出现,一切都列出来了。当您单击一个项目时,它会进入详细屏幕,但是当您尝试返回时,它只会崩溃。我发现了这个流程为什么我的 SwiftUI 应用程序在“NavigationView”中的“navigationBarItems”内放置“NavigationLink”后向后导航时会崩溃?但我无法解决我的问题。由于我的项目变得复杂,我只想在swiftui中练习导航并创建了一个新项目。顺便说一下,我下载了最新的 xcode 版本 11.3。我写了一个简单的代码如下:

NavigationView{
        NavigationLink(destination: Test()) {
            Text("Show Detail View")
        }
    .navigationBarTitle("title1")
Run Code Online (Sandbox Code Playgroud)

而 Test() 视图如下:

import SwiftUI

struct Test: View {
    var body: some View {
        Text("Hello, World!")
    }
}

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,这非常简单。我也在互联网上尝试过类似的例子,但它并没有像它想象的那样工作。当我运行该项目时,我单击导航链接并导航到 Test() 视图。然后我点击后退按钮,它导航到主页。但是,当我第二次单击导航链接时,没有任何反应。导航链接只工作一次,之后什么也没有发生。它不导航,也不抛出任何错误。我是 swiftui 的新手,除了导航之外,一切都很棒。我在互联网上尝试了很多示例和建议的解决方案,但似乎没有任何解决方案可以解决我的问题。

navigation xcode ios swiftui navigationlink

100
推荐指数
2
解决办法
1万
查看次数

SwiftUI NavigationLink 从不释放内存

以最基本的示例应用程序为例,其中有两个屏幕NavigationView

import SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationView {
      List {
        NavigationLink(destination: SubView()) {
          Text("Go to screen 2")
        }
      }
      .navigationBarTitle("Screen 1", displayMode: .inline)
    }
  }
}

struct SubView: View {
  var body: some View {
    Text("Hello, World!")
      .navigationBarTitle("Screen 2", displayMode: .inline)
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您转到屏幕 2 并按后退按钮返回屏幕 1,SubView则永远不会释放。如果你来回多次,就会有多个SubView活着的实例。这感觉像是一个巨大的问题/内存泄漏,默认情况下它的行为看起来很奇怪。有解决方法吗?

instruments ios swiftui

8
推荐指数
0
解决办法
446
查看次数

试图弹出一个在 SwiftUI 中不存在的视图控制器

我的 SwiftUI 应用程序上非常正常的导航发生了奇怪的崩溃

我有一个简单的选项卡视图:

struct FFTabView: View {
    var body: some View {
        TabView {
            LibraryView2()
        }
        .navigationBarBackButtonHidden(true)
        .navigationBarHidden(true)
        .navigationBarTitle("", displayMode: .inline)
    }
}

// MARK: -

struct LibraryView2: View {

    var body: some View {
        VStack {
            NavigationLink(destination: Foo()) {
                Text("go to foo")
            }
        }
        .tabItem {
            Image(systemName: "square.grid.2x2.fill")
            Text("Skill Library")
        }
    }

}

struct Foo: View {
    var body: some View {
        Text("foo view")
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过导航栏返回时,Foo我遇到了崩溃:Tried to pop to a view controller that doesn't …

ios swift swiftui

7
推荐指数
1
解决办法
1356
查看次数

标签 统计

ios ×3

swiftui ×3

instruments ×1

navigation ×1

navigationlink ×1

swift ×1

xcode ×1