0

ライブラリKYCircleMenuを使用しています。ここで見つけることができます。ストーリーボードも扱っています。KYCircleMenu から派生したクラス MenuViewController を作成しました

@interface MenuViewController : KYCircleMenu

次に、initWithCoder を次のように実装しました。

- (id)initWithCoder:(NSCoder*)aDecoder
{
    NSLog(@"called");
    if(self = [self initWithButtonCount:kKYCCircleMenuButtonsCount
                              menuSize:kKYCircleMenuSize
                            buttonSize:kKYCircleMenuButtonSize
                 buttonImageNameFormat:kKYICircleMenuButtonImageNameFormat
                      centerButtonSize:kKYCircleMenuCenterButtonSize
                 centerButtonImageName:kKYICircleMenuCenterButton
       centerButtonBackgroundImageName:kKYICircleMenuCenterButtonBackground]) 
    { 
        
        
    } 
    return self;
}

最後に、 KyCicrleMenu のメソッドを実装しましたRunButtonActions。このメソッドは、メニューでどのボタンが押されたかを教えてくれます。したがって、このメソッドでは、別のビューコントローラーへのセグエを実行しようとしています。私はこのようにしています。

 NSLog(@"tag is %d",[sender tag]);
    [self performSegueWithIdentifier:@"showNews" sender:self];

(ログには、押されたボタンのボタン タグが表示されます)。何らかの理由で、このエラーが発生し続けます。

Receiver (<MenuViewController: 0x1cd7cf50>) has no segue with identifier 'showNews''

これが私のストーリーボードのスクリーンショットです。

ここに画像の説明を入力

この厄介な問題を手伝ってくれる人はいますか?

敬具

4

1 に答える 1

1
- (id)initWithCoder:(NSCoder*)aDecoder
{
    NSLog(@"called");
    if(self = [self initWithButtonCount:kKYCCircleMenuButtonsCount
                              menuSize:kKYCircleMenuSize
                            buttonSize:kKYCircleMenuButtonSize
                 buttonImageNameFormat:kKYICircleMenuButtonImageNameFormat
                      centerButtonSize:kKYCircleMenuCenterButtonSize
                 centerButtonImageName:kKYICircleMenuCenterButton
       centerButtonBackgroundImageName:kKYICircleMenuCenterButtonBackground]) 
    { 


    } 
    return self;
}

ここでは、オブジェクトに対して何もしていません。aDecoderこれには、ストーリーボード (セグエを含む) からのすべての情報が含まれています。代わりに、ストーリーボードで設定したものを無視して、まったく新しいオブジェクトを作成しています。

リポジトリをざっと見てみたところ、ストーリーボードで使用するように調整されていないようです。独自の loadView メソッドを実装しており、指定されたイニシャライザなどがあります。[super initWithCoder:aDecoder];おそらく指定されたイニシャライザーからセットアップコードを引き出して別のメソッドに入れることによって、 を呼び出した後にこれらのプロパティを設定するには、それをいじる必要があります。

于 2013-03-21T09:46:49.543 に答える