【问题标题】:Unable to pushViewController with animation [closed]无法使用动画推送ViewController [关闭]
【发布时间】:2018-07-07 18:20:35
【问题描述】:

1) 我没有使用任何故事板,并且在 appDelegate 文件中我将窗口的 rootViewController 设置为 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 方法。

【问题讨论】:

  • 邮政编码......
  • @Sh_Khan 什么,我不明白你需要什么代码,我解释了一切。你到底需要什么?如何将我的标签栏设置为窗口的 rootView?如何设置 tabBarViewcontrollers?
  • @MihailStoica 为了能够提供帮助,我们需要查看可能导致问题的代码,很可能是您的 UITableViewController 类中的代码。是否有崩溃或错误消息?
  • @Chris,感谢您的回复。不,没有崩溃或错误消息。
  • @Mihail 你能贴出你的代码吗

标签: ios swift navigationcontroller


【解决方案1】:

当我从左向右滑动表单时,控制器正在显示 对了

免责声明:我通常在 Cocoa 中,因此并非所有这里都可以工作。

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

我尝试通过单击其中一个单元格来推送 viewController,但是 画面卡住了

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

【讨论】:

  • 好吧,对于 rootView 控制器,不应该从左向右滑动,因为它是一个 rootVC。事情是这样的:如果我不在 rootVC 中从左向右滑动表单,一切都会正常工作,一切都会按应有的方式推送,并且导航滑动工作正常。一旦我到达 rootViewController 并滑动然后尝试再次推送 VC,就会出现错误。控制台没有错误!
  • 我已经编辑了视频链接,如果你还没有,请看一下。感谢您的回答。我刚刚观察到的一件事:一旦你在 VC 中从左向右滑动,然后单击一个假设要推送另一个 VC 的单元格,右侧就会出现一个 SHADOW
  • 也许其他人知道答案,因为它似乎不知道。
  • 解决了,再次感谢。这是因为我使用的是导航栏的 hide with animation 方法,而不是导航栏的 isHidden 方法。
  • 嗯,很有趣,很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 2012-01-13
相关资源
最近更新 更多