使用新的 Xcode13+ 编译和 运行 我的 tvOS 项目,标签栏随 scrollView 滚动,我无法访问拆分视图控制器

Compiling and running my tvOS project with the new Xcode13+, the tab bar scrolls with the scrollView and I can't access the split view controller

当我使用新 Xcode13+ 编译和 运行 我的 tvOS 项目时,选项卡栏随 scrollView 滚动,我无法访问移动焦点的拆分视图控制器。

Xcode < 13 时不会出现此问题。但是,在更新到 Monterey 后,我别无选择。

前置条件:

  1. 在 tvOS 上使用标签栏控制器创建应用程序;
  2. 在其中一个选项卡中,放置一个拆分视图控制器;
  3. 在折叠的主视图控制器中,放一个table视图。

问题 1:

观察到将焦点向左移动以打开折叠的主视图控制器不再起作用。不会拉出主视图控制器。将其拉出的唯一方法是点击后退按钮(例如菜单按钮)。

问题 2:

在主视图控制器中的 tableView 上向下滚动也会滚动顶部的标签栏(这可能只设置 tabBarObservedScrollView 之前,但现在已弃用并且它自动发生。即使使用 [self setContentScrollView:nil forEdge:NSDirectionalRectEdgeAll] 也无济于事。


有人遇到同样的问题吗?您知道为什么会发生这种情况,是否可以解决? 同时,我向Apple报告了这个问题。

PS。另一件奇怪的事情是 setContentScrollView:forEdge:Apple documentation 是空的(截至今天)。

更新:

观察如何将 属性 设置为 nil,它仍然被填充:

经过深入调查,我发现只有在 tvOS15+ 上使用 Xcode13+ 和 运行ning 编译时才会出现问题。

出于某种原因,上面的 属性 会自动填充所有 UITableViewController

UITableViewController 替换为带有 UITableViewUIViewController 解决了 Apple 问题。

这是 Apple SDK 的错误:

观察如何将 属性 tabBarObservedScrollView 设置为 nil,它仍然被填充:

所有 UITableViewController.

都会发生这种情况

UITableViewController 替换为带有 UITableViewUIViewController 内部 wor Apple 问题。

--

关于向左滑动,这是另一个 Apple 错误或决定,即在拆分视图控制器上不允许焦点在主视图控制器上移动。