标签: navigationsplitview

SwiftUI:NavigationSplitView 标题栏问题

我\xe2\x80\x99已将此作为一个错误提交给Apple(FB12119822),因为我\xe2\x80\x99m相当确定\xe2\x80\x99s我的代码没有任何问题,但在这里发布是为了后代和以防万一其他人已经找到了解决方法。

\n

在 NavigationSplitView 中的列表和详细信息部分之间导航时,标题栏意外地在内联和大显示模式之间跳转。在某些情况下,标题看起来是空的,直到导航序列完成,之后它突然以大显示模式呈现,将视图内容向下推。

\n

重现步骤

\n
    \n
  1. 创建一个 NavigationSplitView,其中包含可导航列表项的侧边栏以及与带有导航栏标题的所选项目相对应的详细信息视图
  2. \n
  3. 导航到详细视图
  4. \n
\n

预期结果

\n

导航转场将原始标题动画化为导航栏的 \xe2\x80\x9cBack\xe2\x80\x9d 按钮,同时将目标\xe2\x80\x99s 导航栏标题动画化为默认(大)显示模式

\n

实际结果

\n

导航转场将原始标题动画化到导航栏的 \xe2\x80\x9cBack\xe2\x80\x9d 按钮中,但不显示目标标题。转场完成后,\xe2\x80\x9dBack\xe2\x80\x9d 按钮文本将替换为默认文本 (\xe2\x80\x9cBack\xe2\x80\x9d),并且目标标题会突然出现。(屏幕录制

\n

额外的观察结果

\n

当 NavigationSplitView\xe2\x80\x99s 列表有selection参数时,会出现上述行为。navigationDestination当应用修改器时,源列表和目标详细视图的标题栏都会受到影响屏幕录制

\n

代码示例

\n

List(selection:)

\n
import SwiftUI\n\nfileprivate struct Item: Identifiable, Hashable {\n    let id = UUID()\n}\n\nfileprivate let items = (0...10).map { _ in Item() }\n\nstruct ListWithSelectionTitleBarJumpExample: View {\n    @State var selectedItem: UUID?\n\n    var body: some …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui navigationsplitview

12
推荐指数
1
解决办法
1029
查看次数

使用 NavigationSplitView 时 iOS 16.1 上的 NavigationTitle 延迟

还有其他人在 iOS 16.1 中遇到这个问题吗?NavigationSplitViewNavigationTitle视图加载后加载?\xe2\x80\x93 在 iOS 16.0 上运行良好。(https://i.stack.imgur.com/G0IUG.gif

\n

它实际上是相同的代码,但它只在 iOS 16.1 上给我带来了问题。

\n

更新:这在 iOS 16.2 和 16.3 上仍然是一个问题。

\n

@Hunter更新:Apple 似乎已在 iOS 16.4 Beta 1 上修复了此问题。

\n

swiftui ios16 swiftui-navigationsplitview navigationsplitview

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