无法使用动画推送 ViewController

Unable to pushViewController with animation

1) 我没有使用任何故事板,在 appDelegate 文件中我将 window 的根 ViewController 设置为 tabBarController。

2) 这个 tabBarController 有 5 个子项,这些子项是以 ViewControllers 作为根的 navigationControllers。

2) 每个孩子都是 TableViewControllers,当点击一个 tableViewCell 时,我需要推送到另一个 ViewController

The problem is: https://postimg.cc/image/ocskkyye5/

我尝试通过单击其中一个单元格来推动 viewController,但屏幕冻结,当我从左向右滑动表单时,控制器从右侧显示

Solve it。因为我用的是导航栏的hide with animation方法,而不是导航栏的isHidden方法。

when I swipe form left to right, the controller is being shown from right

免责声明:我通常在 Cocoa,所以并非所有这里都有效。

tableView 处于焦点,第一响应者也是如此,因此嵌入 TableView 的 UIScrollView 代替了您的滑动和滚动。如果您不需要垂直滚动,一种选择是通过修改视图层次结构或使用自定义 scrollView class 将所有 scrollWheel 事件通过管道传递给 nextResponder 来删除滚动部分。您还可以实现一个自定义 UIScrollView,并将自定义 class 设置为您的 scrollView 中使用的那个。 class 可能会将每个滚动事件拆分为垂直和水平事件,其中垂直转到 super.scrollWheel(with:),水平转到 nextResponder.scrollWheel(with:)。黑暗中的另一个镜头是将 scrollView 内的视图设置为固定到 scrollViews 的前导和尾随锚点,因此它不能改变大小,但不知道它是否仍然吃垂直滚轮,所以可能行不通。

I tried pushing the viewController by clicking one of the cells, but the screen freezes

冻结可能有很多原因。也许是死锁,也许是别的什么。你收到动作事件了吗?如果是这样,请尝试找到它用断点冻结的位置并显示一些代码。或者你在使用segues?信息不足。