从 Tab View Controller 切换到滑动手势时的 iOS Xcode 问题

Posted

技术标签:

【中文标题】从 Tab View Controller 切换到滑动手势时的 iOS Xcode 问题【英文标题】:iOS Xcode issue when swapping from Tab View Controller to swipe gestures 【发布时间】:2013-12-23 20:27:08 【问题描述】:

我正在使用 Tab View 控制器设计一个应用程序,效果很好。

我决定从标签视图控制器更改为滑动手势。但是一旦完成,虽然滑动操作工作正常,在视图之间交换没有问题,但当我按下其中一个屏幕上的按钮(在选项卡视图控制器中工作时工作正常)时,我收到以下错误:-

2013-12-23 20:07:57.702 TrialApp[3615:60b] * -[CMStepCounter queryStepCountStartingFrom:to:toQueue:withHandler:] 中的断言失败,/SourceCache/CoreLocationFramework/CoreLocation-1613.5.2/框架/CoreMotion/CMStepCounter.mm:211 2013-12-23 20:07:57.704 StepWise[3615:60b] 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效参数不满足:开始” ** 首先抛出调用堆栈: (0x1839C60C 0x184541928 0x183987025 0x18398768 0x184541928 0x184541928 0x184541928 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x18398768 0x183987024 0x1838c5b38 0x1838c5b38 0x18920b830 0x1869040e8 0x180def6ec 0x180f6ec 0x18ff2faa0) libc++abi.dylib:以 NSException 类型的未捕获异常终止 (lldb)

为什么这在标签视图控制器中可以正常工作,但在使用滑动操作时会失败?

【问题讨论】:

如果没有看到滑动手势识别器的代码以及控制器层次结构是什么,就无法判断。 手势识别器是在故事板中创建的,而不是编写代码。至于层次结构,你能解释一下吗?屏幕滑动没有问题。只是在使用按钮并在之后运行代码时才会出现问题,但在选项卡中不会出现。有没有办法查看出错的代码行? 滑动识别器的动作方法是什么?您必须有代码,或者您已将其连接到 segue。您应该向项目添加一个异常断点,它应该向您显示错误所在的行。您还在使用标签栏控制器,还是在使用其他东西? 我将它连接到 segue。我添加了断点,但看不到错误。不过会再试一次。我在测试时仍然有标签栏控制器,我不应该这样做吗? 我还是不知道你到底在做什么。您将手势识别器附加到哪些序列?您通常拥有的唯一 segues 是选项卡栏控制器及其内容控制器之间的根视图控制器类型——我认为您不想连接到这些控制器。您是否添加了异常断点(这是一个项目范围的事情,而不是您放在各个行上的)? 【参考方案1】:

感谢 rdelmar。发现一个变量正在丢失其数据。排序后,我现在将其存储在 NSUserDefaults 中。

【讨论】:

您可能不应该将其存储在 NSUserDefaults 中,除非您需要在应用程序启动之间保留该值,这不是用户默认值的含义(并且可能表明您做错了什么,如果只有这样才能让它发挥作用)。 实际上将它存储在那里非常有意义。我开始了一个想法并交换了中间流程,现在保留是有意义的。不过还是谢谢。

以上是关于从 Tab View Controller 切换到滑动手势时的 iOS Xcode 问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中像 Tab View Controller 一样滑动 uiView

仅当从警报调用时,如何向第二个向下钻取View Controller添加按钮?

使用委托将数据从Collection View Controller传递到View Controller

使用委托将数据从 Collection View Controller 传递到 View Controller

react-native-tab-view 导航栏切换插件讲解

微信小程序实现tab切换