0

touchesEndedメソッドを実装するカスタムUIScrollViewクラスがあります。私のプロジェクトにはストーリーボードがあり、ビューコントローラでperformSeguewithIdentifierを呼び出そうとしていますが、メソッドを呼び出すと、changePhoto以下のエラーが発生します。セグエのラベルが正しく、スペルミスがないことを確認しました。PhotoViewControllerの新しいインスタンスを作成しているとき、ストーリーボードやセグエは作成されていないようです。UIScrollViewからセグを正しく機能させるために呼び出すにはどうすればよいですか?

CustomUIScrollView.m

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [touches anyObject];

    if ([[touch view] isKindOfClass:[UIImageView class]]) {
        UIView *imageView = [touch view];
        NSInteger tag = imageView.tag;
        NSLog(@"Tag: %d", tag);
        PhotoViewController *vc = [[PhotoViewController alloc]init];
        [vc changePhoto:1];
    }
}

PhotoViewController.m

-(void)changePhoto:(int)spaceId {
    [self performSegueWithIdentifier: @"photoSegue" sender: self];
}

エラー:

2012-10-09 10:28:38.765 Spaces [82945:11303] *キャッチされなかった例外「NSInvalidArgumentException」が原因でアプリを終了しています。理由:「Receiver()に識別子「photoSegue」のセグがありません」

4

1 に答える 1

1

これでビューコントローラを初期化してみてください

PhotoViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"myIdentifier"]

インターフェイスビルダーで、対応するViewControllerの識別子を必ず設定してください。

于 2012-10-09T15:13:23.640 に答える