0

UIStoryboardSegueプッシュアニメーションのセグエを抑制するためにサブクラスを使用しています。

#import "NoAnimationSegue.h"

@implementation NoAnimationSegue

- (void)perform
{
    UIViewController *src = (UIViewController *) self.sourceViewController;
    UIViewController *dst = (UIViewController *) self.destinationViewController;
    NSLog(@"src %@", src);
    [src.navigationController pushViewController:dst animated:NO];
}

@end

このセグエを使用すると、特定の状況でアプリがクラッシュすることがあります。このコードを無効にして、代わりにプッシュセグエを使用すると、正常に機能します。

何か案は?

4

2 に答える 2

0

上記のコードは私にとってはうまく機能しています。このサブクラス化されたセグエで「perform」メソッドをどのように呼び出しますか?次の例でサブクラスを確認しましたが、正常に機能しています。「perform」メソッドの呼び出しに使用しているコードを教えてください。

SecondViewController *second = [[SecondViewController alloc] init];
NoAnimationSegue *animate = [[NoAnimationSegue alloc] initWithIdentifier:@"1" source:self destination:second];
[animate perform];
于 2012-12-17T13:29:25.157 に答える
0

この問題は、ストーリーボードにジェスチャーレコグナイザーを追加したために発生しました destinationViewController

ジェスチャレコグナイザーを削除するか、コードを介してレコグナイザーを追加すると、正常に機能しました。

于 2012-12-25T06:39:38.583 に答える