这篇文章没有开头。我折腾了两个小时已经筋疲力竭。SwiftUI傻逼。 事件背景@ObservedRealmObject的大坑! 这是放在外面的效果:
NavigationView {
ContentView()
}
.navigationTitle("All Groups")
.navigationBarTitleDisplayMode(.large)
这是放在里面的效果:
NavigationView {
ContentView()
.navigationTitle("All Groups")
.navigationBarTitleDisplayMode(.large)
}
搞得我以为所有的关于Toolbar和Navigation的都应该放到里面
后来我遇到了@ObservedRealmObject的大坑!我一直以为是Realm的问题,网上看到了一堆教程,很多都在说.navigationViewStyle(.stack)
有用,我试了半天没用。
这是放在里面的效果:
NavigationView {
ContentView() // with NavigationLink inside
.navigationViewStyle(.stack)
}
这是放在外面的效果:
NavigationView {
ContentView() // with NavigationLink inside
}
.navigationViewStyle(.stack)
我服了爸爸:咱就是说为什么明明都是同类别的Modifier非要放在不同的地方才能生效呢?
我早就深知id对SwiftUI的重要性,因此干点啥都一定很谨慎地把id加上,然而当我改了半天stack都没用的时候,我开始怀疑自己了:
难道是我id写的还不够严谨?难道一定要用他们的_id?
于是折腾了半天改成
_id
,又是改成@ObservedResults
,改来改去愣是没用
我一直以为是我id的写法不够标准,但改了半天就是没用
实在受不了了尝试了一下把iOS最低版本升到16.0,用了一回NavigationStack
,可算是管用了。
然后我就寻思,.navigationViewStyle(.stack)
不管用,NavigationStack
管用?凭啥?我以后只能开发16.0以上的吗?
于是折腾折腾折腾
最后突发奇想把.navigationViewStyle(.stack)
放到外面才终于整好了…
发明这个的人脑子是怎么想的啊?
《里外》
苹果雨燕大视图, // SwiftUI 你不谋财只害命。 一会里来一会外, 里里外外不是人。