Ios 带模态分段的旋转碰撞

Ios 带模态分段的旋转碰撞,ios,swift,rotation,modalviewcontroller,uideviceorientation,Ios,Swift,Rotation,Modalviewcontroller,Uideviceorientation,我将视图控制器1、2和3链接成这样,2和3显示模态分段: 当用户处于横向模式一段时间后,展开到父视图,然后将手机旋转回纵向时,应用程序会崩溃,并出现以下符号化的崩溃报告: 3个展开到2个: 由于未捕获的异常而终止应用程序 “NSInvalidArgumentException”,原因:“-[nsConcreteMatableData rotatesOnDeviceRotation]:发送到实例的无法识别的选择器 0x19360600' 2展开到1: 应用程序因信号SIGSEGV而崩溃 我从App

我将视图控制器1、2和3链接成这样,2和3显示模态分段:

当用户处于横向模式一段时间后,展开到父视图,然后将手机旋转回纵向时,应用程序会崩溃,并出现以下符号化的崩溃报告:

3个展开到2个:

由于未捕获的异常而终止应用程序 “NSInvalidArgumentException”,原因:“-[nsConcreteMatableData rotatesOnDeviceRotation]:发送到实例的无法识别的选择器 0x19360600'

2展开到1:

应用程序因信号SIGSEGV而崩溃

我从Appsee获得这些报告,因为该应用现在处于测试阶段,而且我似乎无法在自己的设备上重新创建错误,所以我依赖于在更新之前知道错误是什么

似乎应用程序忘记了它所在的视图,也不知道旋转到什么位置。如果您有任何想法或曾经经历过类似的事情,我将不胜感激

更新1:

v2/ShinobiCharts.framework/Headers/SChartBandSeries.h:42:57:Attribute 属性“orientation”的“readonly”限制属性“readwrite” 从“SChartSeries”继承的属性的


如果视图层次结构如此简单,那么您最好只使用推送序列导航,然后松开。在没有看到代码的情况下,必须假设对第二个控制器的引用丢失,因此在尝试旋转它时旋转崩溃,尽管我没有经历过这种情况

或者只是简单地弹出一个或两个视图

self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
// Or to pop back 2
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
更新:

您的问题与ShonobiControl有关。

我们最近修复了一个问题,该问题与解除分配后发送给SChartCanvas的消息有关,看起来与上述问题非常类似。 如果您看到此问题,那么ShinobiCharts 2.7.3.hotfix2版本可能值得一试。这可从我们的门户网站下载。 我希望这能解决您一直看到的问题,但如果问题仍然存在,请不要犹豫与我们联系!:- 谢谢
Ryan

所以你有一个模态视图,它表示一个模态视图,它表示一个模态视图?当popdismissViewControllerAnimated的设计目标是从3放松到2时,我看不出有什么理由。展开通常是在导航堆栈中向后导航。@dco不,仅以模式显示2和3。视图1是初始视图控制器。是否有理由不使用推送?这正是它设计的初衷。在这里,我能想到的唯一一件事是,在通过两个模态展开后,对第二个控制器的引用丢失了,所以当它试图旋转该视图时,它崩溃了。@dcgood我确信我在前一段时间做出决定时有原因,但现在我不明白为什么,所以我将它更改回来,你认为模式分段是问题的根源吗?解除和取消模式分段有什么区别?通常情况下,对于比这更深一层的场景,以及你想启动操作的场景。没有必要使代码过于复杂,因此,尽管在这种情况下展开应该可以工作,但在堆栈中有两个以上的视图并希望展开并启动操作的情况下,只需键入dismissViewControllerAnimated并使用展开就可以了。直观的意思是什么?当您关闭viewcontroller时,您会将其从堆栈中弹出,而当您松开它时,您会做什么?此外,我还记得为什么我一开始没有使用push segue,当我使用它时,视图自动调整大小的行为会很奇怪。展开的操作与从堆栈中弹出视图到某个点的操作相同。两者基本上都有一个完成处理程序。视图自动调整大小可能是您的问题。我不得不想象你在某个地方遇到了一个约束问题。我唯一的错误来自我正在使用的自定义框架:ShinobiCharts,但我一直认为它存在,因为我强制它只停留在横向模式。我把它加在上面了。
0   Retrostock v2   0x232293    0x23228f
1   CoreFoundation  0x29759e09  __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 13
2   CoreFoundation  0x296b4515  _CFXNotificationPost + 1785
3   Foundation  0x2a415749  -[NSNotificationCenter postNotificationName:object:userInfo:] + 73
4   UIKit   0x2cdf78b7  -[UIDevice setOrientation:animated:] + 319
5   UIKit   0x2cdf766b  -[UIApplication handleEvent:withNewEvent:] + 1599
6   UIKit   0x2cdf6f69  -[UIApplication sendEvent:] + 73
7   Retrostock v2   0x196675    -[IBGMethodSwizzler sendEvent:] (IBGMethodSwizzler.m:103)
8   Retrostock v2   0x14f50b    uvSendEvents (UVManager.m:162)
9   UIKit   0x2ce5cc81  _UIApplicationHandleEvent + 633
10  GraphicsServices    0x30f927d1  _PurpleEventCallback + 529
11  GraphicsServices    0x30f9241b  PurpleEventCallback + 35
12  CoreFoundation  0x297677cb  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
13  CoreFoundation  0x29767767  __CFRunLoopDoSource1 + 347
14  CoreFoundation  0x29765d69  __CFRunLoopRun + 1609
15  CoreFoundation  0x296b2201  CFRunLoopRunSpecific + 477
16  CoreFoundation  0x296b2013  CFRunLoopRunInMode + 107
17  GraphicsServices    0x30f91201  GSEventRunModal + 137
18  UIKit   0x2ce56a59  UIApplicationMain + 1441
19  Retrostock v2   0x110690    main () (AppDelegate.swift:14)
20  libdyld.dylib   0x37fdfaaf  start + 3
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
// Or to pop back 2
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)