2015-04-23 362 views
0

我視圖控制器1,2和3鏈這樣,圖2和3都帶有模態塞格斯:enter image description here崩潰與模態旋轉塞格斯

當用戶已經在橫向模式下的一小會兒(不一致時間),開卷到父視圖,然後旋轉手機回畫像,與這些symbolicated崩潰報告應用程序崩潰:

3退繞至2:

終止應用程序未捕獲到由於例外 'NSInvalidArgumentException' 的,原因是: ' - [NSConcreteMutableData rotatesOnDeviceRotation]:無法識別的選擇發送到實例 0x19360600'

Last Exception Backtrace 
0 CoreFoundation 0x297a1fef __exceptionPreprocess + 127 
1 libobjc.A.dylib 0x37a53c8b objc_exception_throw + 39 
2 CoreFoundation 0x297a7409 __methodDescriptionForSelector + 1 
3 CoreFoundation 0x297a5327 ___forwarding___ + 715 
4 CoreFoundation 0x296d4e78 __forwarding_prep_0___ + 24 
5 Retrostock v2 0x28b293 0x28b28f 
6 CoreFoundation 0x29759e09 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 13 
7 CoreFoundation 0x296b4515 _CFXNotificationPost + 1785 
8 Foundation 0x2a415749 -[NSNotificationCenter postNotificationName:object:userInfo:] + 73 
9 UIKit 0x2cdf78b7 -[UIDevice setOrientation:animated:] + 319 
10 UIKit 0x2cdf766b -[UIApplication handleEvent:withNewEvent:] + 1599 
11 UIKit 0x2cdf6f69 -[UIApplication sendEvent:] + 73 
12 Retrostock v2 0x1ef675 -[IBGMethodSwizzler sendEvent:] (IBGMethodSwizzler.m:103) 
13 Retrostock v2 0x1a850b uvSendEvents (UVManager.m:162) 
14 UIKit 0x2ce5cc81 _UIApplicationHandleEvent + 633 
15 GraphicsServices 0x30f927d1 _PurpleEventCallback + 529 
16 GraphicsServices 0x30f9241b PurpleEventCallback + 35 
17 CoreFoundation 0x297677cb __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35 
18 CoreFoundation 0x29767767 __CFRunLoopDoSource1 + 347 
19 CoreFoundation 0x29765d69 __CFRunLoopRun + 1609 
20 CoreFoundation 0x296b2201 CFRunLoopRunSpecific + 477 
21 CoreFoundation 0x296b2013 CFRunLoopRunInMode + 107 
22 GraphicsServices 0x30f91201 GSEventRunModal + 137 
23 UIKit 0x2ce56a59 UIApplicationMain + 1441 
24 Retrostock v2 0x169690 main() (AppDelegate.swift:14) 
25 libdyld.dylib 0x37fdfaaf start + 3 

Crashed Thread 0 : 
    0 CoreFoundation 0x297a231f __handleUncaughtException + 631 
    1 libobjc.A.dylib 0x37a53f13 objc_terminate() + 175 
    2 libc++abi.dylib 0x37388de3 std::__terminate() + 79 
    3 libc++abi.dylib 0x373888af __cxa_rethrow + 103 
    4 libobjc.A.dylib 0x37a53dd3 objc_exception_rethrow + 43 
    5 CoreFoundation 0x296b229d CFRunLoopRunSpecific + 633 
    6 CoreFoundation 0x296b2013 CFRunLoopRunInMode + 107 
    7 GraphicsServices 0x30f91201 GSEventRunModal + 137 
    8 UIKit 0x2ce56a59 UIApplicationMain + 1441 
    9 Retrostock v2 0x169690 main() (AppDelegate.swift:14) 
    10 libdyld.dylib 0x37fdfaaf start + 3 

2退繞至1:

應用崩潰與信號SIGSEGV

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 

我從Appsee獲得這些報告,因爲該應用程序現在處於beta測試階段,而且我似乎無法在自己的設備上重新創建錯誤,因此在更新錯誤之前,我依賴於瞭解錯誤。

它似乎應用程序「忘記」它的視圖,並不知道要旋轉到什麼。如果您有任何想法或過去經歷過類似事情,我將非常感激。

UPDATE 1:

V2/ShinobiCharts.framework /接頭/ SChartBandSeries.h:42:57:屬性 '只讀' 屬性 '方向' 的限制屬性 '讀寫' 的屬性繼承 'SChartSeries'

+0

所以,你有一個模態視圖,呈現模態視圖,呈現模態視圖?當這是pop(dismissViewControllerAnimated)的設計目標時,我沒有看到從3到2展開的理由。放鬆一般是在導航堆棧中進一步導航。 –

+0

@DCGoD不,只有2和3以模態方式呈現。視圖1是初始視圖控制器。 – joseph

+0

是不是有一個原因,你不只是使用推?這是它設計的確切場景。我在這裏看不到代碼的唯一的事情就是在通過2個模式展開後,對第二個控制器的引用會丟失,所以當它試圖旋轉該視圖時會崩潰。 –

回答

0

如果視圖層次結構如此簡單,那麼只需使用push segue進行導航然後展開即可。在沒有看到代碼的情況下,人們不得不假設第二個控制器的引用丟失,所以當旋轉它時旋轉會崩潰(儘管我沒有經歷過這種情況)。

或者只是彈回一個或2次乾脆

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

UPDATE:

你的問題是Shonobicontrols具體。 https://www.shinobicontrols.com/forum/shinobicontrols/2014/3/app-terminated-on-rotation-in-[schartcanvas-viewabouttorotate]

我們最近固定有關的信息的問題發送到SChartCanvas它dealloced看起來非常類似於上述問題後。 版本ShinobiCharts 2.7.3.hotfix2可能值得您嘗試,如果你看到這個問題。這可以從我們的門戶網站下載。 我希望能夠解決您所遇到的問題,但如果問題仍然存在,請不要猶豫與我聯繫!:-) 謝謝 Ryan

+0

展開和解散它有什麼區別? – joseph

+0

一般針對比此更深的1視圖以及您想要觸發操作的場景。沒有必要對代碼進行過度複雜的處理,所以儘管unwind應該在這種情況下工作,但只需鍵入dismissViewControllerAnimated並在堆棧中的2個視圖深度的情況下使用unwinds,並且想要展開並激發一個動作就簡單多了。 –

+0

什麼是直覺意義?當你解僱一個視圖控制器時,你將它從堆棧中彈出,當你放鬆時,你會做什麼?另外,我記得爲什麼我沒有使用push segue來開始,當我使用它時,視圖自動調整的行爲很奇怪。 – joseph