2012-02-20 66 views
2

我有一個自定義的類爲自定義塞格動畫寫。我正在嘗試自定義動畫輕擊手勢。在我的故事板中,我有一個導航控制器,主視圖,然後是其他兩個視圖。我已經將手勢連接到另一個視圖,並且定義了要使用的segue的自定義類,但是我得到下面的錯誤。我有另一個使用Push的segue,可以正常工作。任何想法做什麼即時錯誤?自定義塞格動畫不工作

這是我的課:

- (void) perform { 

    UIViewController *src = (UIViewController *) self.sourceViewController; 
    UIViewController *dst = (UIViewController *) self.destinationViewController; 

    [UIView transitionWithView:src.navigationController.view duration:0.8 
         options:UIViewAnimationOptionTransitionFlipFromBottom 
        animations:^{ 
         [src.navigationController pushViewController:dst animated:NO]; 
        } 
        completion:NULL]; 

} 

錯誤:

2012-02-20 16:04:45.889 IdeaStarters[2755:fe03] -[__NSCFDictionary setView:]: unrecognized selector sent to instance 0x6a40010 
2012-02-20 16:04:45.891 IdeaStarters[2755:fe03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setView:]: unrecognized selector sent to instance 0x6a40010' 
*** First throw call stack: 
(0x13ba052 0x154bd0a 0x13bbced 0x1320f00 0x1320ce2 0x4fc3e 0x922f40 0x922eeb 0x50268 0x93dd60 0x3f8c54 0x3f8c8f 0x13bbe1a 0x1325821 0x22f46e 0xd6e2c 0xd73a9 0xd75cb 0xd7941 0xe947d 0xe966f 0xe993b 0xea3df 0xea561 0x2064ca 0x50301 0x13bbe72 0x1d6492d 0x1d6e827 0x1cf4fa7 0x1cf6ea6 0x1cf6580 0x138e9ce 0x1325670 0x12f14f6 0x12f0db4 0x12f0ccb 0x12a3879 0x12a393e 0x11a9b 0x2abd 0x2a25 0x1) 
terminate called throwing an exception(lldb) 
+0

看起來像我的代碼:)請發表您的完整的.h和.m文件。這對我來說很好。我們需要弄清楚你可能做什麼不同。錯誤消息中的setView與您的視圖控制器中的其他內容有關嗎? – 2012-02-20 22:18:15

+0

我假設你在故事板seque中定義了seque的類和樣式。之後,我可能只是檢查一下,看看我是否可以直接過渡到其他視圖w /執行segue與標識符只是爲了確保您可以打它。 – DJPlayer 2012-02-20 23:24:11

+0

原來,viewcontroller是腐敗或什麼的,我重新創建了整個視圖,現在一切正常。我不知道是什麼導致了這一點,但一切都與我的其他seques完全一樣,並且工作正常。 – atrljoe 2012-02-20 23:45:37

回答

1

您可能會發現它有助於總是設置這種象徵性的斷點。

https://github.com/brennanMKE/Interfaces/blob/master/NSAssertBreakpoint.png

該斷點會自動停止調試並給你一個機會去回調用堆棧,看問題開始的地方。

我經常在調用任何東西前使用NSAssert來驗證狀態。

NSAssert([segue.destinationViewController isKindOfClass:[ABExpectedClass class]], @"Destination VC must be ABExpectedClass"); 

我記得有這樣一個問題,但它試圖調用選擇是沒有從內部在我的代碼,通常調用一個零值的東西不應該是一個問題。我只是在做錯事,我用的斷言幫助我糾正了邏輯。

試試看看GitHub上的其他自定義細節。有許多可以用作參考。

https://github.com/search?q=UIStoryboardSegue&ref=commandbar