我在iOS 18中遇到Swiftui导航的问题,在使用@environment(.dismiss)时,导航到详细信息导致导航行为的意外重复。

问题描述 投票:0回答:0

在iOS 18,当@environment(.dismiss)详细使用时 print(“详细信息”)语句被触发两次。

相同的代码在iOS 17和更早之前正常工作,其中打印 声明仅是预期的一次。

,但是,当我从详细信息中删除@environment(.dismiss)时 代码按照iOS 18中的意图工作,打印语句为 仅触发一次,并且没有导航行为的重复。
internative方法。
我还使用.JARVITATION DESTATINATION测试(for :)处理导航:

var body: some View { NavigationStack { List { NavigationLink("Mint", value: Color.mint) NavigationLink("Pink", value: Color.pink) NavigationLink("Teal", value: Color.teal) } .navigationDestination(for: Color.self) { color in DetailView() } .navigationTitle("Colors") } } }

第十一次替代方法,该问题仍然存在于iOS 18中,其中打印语句被触发了两次。
    我尝试过的是:
  • 我已经确认删除@environment(.dismiss)解决了 问题,打印语句仅触发一次,然后 导航在iOS 18中的预期工作而无需重复。
  • 仅在使用@environment(.dismiss)时就会发生问题 似乎与导航堆栈行为有关。代码有效 正确地在iOS 17及以下,其中打印语句仅为 一次称为
  • 预期的行为:

我期望打印(详细信息浏览)语句一次 导航到详细信息,导航仅发生一次 没有重复。 @environment(.dismiss)的存在应该 不会导致导航被多次触发。
问题:

这是iOS 18和Swiftui导航的已知问题吗? 具体而言,是否存在一种新行为,与 @environment(.dismiss)?

    其他人遇到这个问题,如果是的话,那是什么 推荐在iOS 18中处理它的方法?
  • 有解决方法以确保导航不会触发 在iOS 18中使用@environment(.dismiss)时不止一次?
  • 任何帮助或见解将不胜感激!

    一个视图的the the the the the the The View the the The The Time tim次,每次发生这种情况时,该语句都会打印其输出。您不应该仅依靠一次被提取一次。
  • 如果您想在显示视图时执行某些内容,请使用
  • body

print

  • body
swiftui swiftui-navigationlink swiftui-navigationstack ios18 swiftui-environment
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.