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

Posted

技术标签:

【中文标题】使用新的 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 【发布时间】:2021-11-08 05:52:45 【问题描述】:

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

Xcode

前置条件:

    在 tvOS 上使用标签栏控制器创建应用; 在其中一个选项卡中,放置一个拆分视图控制器; 在折叠的主视图控制器中,放置一个表格视图。

问题 1:

请注意,将焦点向左移动以打开折叠的主视图控制器不再起作用。主视图控制器不会被拉出。将其拉出的唯一方法是点击返回按钮(前菜单按钮)。

问题 2:

在主视图控制器中的 tableView 上向下滚动也会滚动到顶部的选项卡栏(这可能只设置 tabBarObservedScrollView 之前,但现在已弃用,它会自动发生。即使使用 [self setContentScrollView:nil forEdge:NSDirectionalRectEdgeAll] 也不会没救了。


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

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

更新:

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

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

由于某种原因,上面的属性会自动填充为 ALL UITableViewController

UITableViewController 替换为UIViewController 内部为UITableView 解决了Apple 问题。

【问题讨论】:

【参考方案1】:

这是 Apple SDK 的一个错误:

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

所有UITableViewController都会发生这种情况。

UITableViewController 替换为UIViewControllerUITableView 在Apple 问题内部。

--

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

【讨论】:

以上是关于使用新的 Xcode13+ 编译和运行我的 tvOS 项目,标签栏随 scrollView 滚动,我无法访问拆分视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 编译我的应用程序,但无法在模拟器中运行它

关于不想升级Xcode,又想支持新的iOS系统版本

Xcode 13编译项目 iOS15适配 UINavigationBar和UITabBar设置无效,变成黑色

Xcode 项目卡住“正在编译 Swift 源文件”

Xcode 11.5 发布,以修改 BUG 为主

为 Kivy-ios 编译自定义模块