2012-02-20 18 views
2

私はカスタムセグアニメーションのために書かれたカスタムクラスを持っています。私はタップジェスチャーをアニメートするカスタムにしようとしています。私のストーリーボードには、ナビゲーションコントローラ、メインビュー、そして2つのビューがあります。 Iveはジェスチャーを他のビューに接続し、使用するセグエのカスタムクラスを定義しましたが、以下のエラーが表示されます。私はちょうどプッシュを使用して別のセグが正常に動作している。何が間違っているのかに関するアイディアカスタム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はビューコントローラの他のものに関連していますか? –

+0

私はあなたがストーリーボードのseekでsequeのクラスとスタイルを定義したと仮定しています。その後、私はおそらくちょうどあなたがそれを打つことができることを確認するために識別子でセグを実行すると、私は他のビューに直接移行することができるかどうかを確認するだろう。 – DJPlayer

+0

viewcontrollerが壊れていたり、何かが壊れていたり、ビュー全体が再作成されていて、すべて正常に機能しています。私はこれが何を引き起こしているのか分かりませんが、すべてが私の他の仕切りと同じように設定されていて、働いています。 – atrljoe

答えて

1

あなたは、常にこのシンボリックブレークポイントを設定することが役に立つかもしれません。ブレークポイントが自動的にデバッガを停止し、あなたに問題が開始場所を確認するために、コールスタックをバックアップ行く機会を与えることを

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

NSAssertを頻繁に使用して、何かを呼び出す前に状態を確認します。

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

は、私はこのような問題を抱えて思い出すが、それは呼び出そうとしたセレクタは私のコードで内からではなかったし、通常は問題になることはありませんnilの値に何かを呼び出します。私はちょうど間違ったことをしていました。私が使った主張は、私が論理を修正するのを助けました。

GitHubで他のカスタムセグをチェックしてみてください。あなたが参照として使用できる多くのものがあります。

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

関連する問題