2

カスタム デリゲートが電話を受けません。これが私のセットアップです。のサブクラスでViewControllerあるオブジェクトがあります:SliderViewUIScrollView

SlideView.h

#import <UIKit/UIKit.h>

@protocol SlideViewDelegate <NSObject
@required
-(void) didTapImageData:(NSMutableArray*)imageData atIndex:(int)index;
@end

@interface SliderView : UIScrollView<UIGestureRecognizerDelegate> {
   __weak id<SlideViewDelegate> slideViewDelegate;
}

@property (nonatomic, weak) id<SlideViewDelegate> slideViewDelegate;

@end

SlideView.m

#import "SliderView.h"
@implementation SliderView
@synthesize slideViewDelegate;

- (void) handleTap:(UITapGestureRecognizer *)recognizer{
    NSLog(@"tapped");
   [[self slideViewDelegate] didTapImageData: imageData atIndex:0 ];
}

ViewController.h

@interface ViewController : UIViewController <
                                        UIScrollViewDelegate,
                                        SlideViewDelegate>{
   SliderView *thumbGalleryView;//delegate and reference are set in XCode
}

ViewController.m

#import "ViewController.h"
@implementation ViewController

-(void)didTapImageData:(NSMutableArray*) imageData atIndex:(int)index{
    NSLog(@"NOT WORKING HERE");
}

したがってViewController、上記のメソッドで呼び出しを受け取ることはありません。はthumbGalleryViewにリンクされViewController、デリゲートも に設定されてViewControllerいます。は正常にメッセージを出力していますが、SlideView無視されます。なんで?handleTap[[self slideViewDelegate] didTapImageData: imageData atIndex:0 ];

4

2 に答える 2

1

スクロールビューdelegateを設定しました。ivar

に設定する必要がありslideViewDelegateますViewController


編集済み

追加IBOutlet

IBOutlet __weak id<SlideViewDelegate> slideViewDelegate;

次に、xib 接続から、明確にするためslideViewDelegateViewController
、スクロール ビューのクラスをSliderView
追加画像 に変更することも忘れないでください。ここに画像の説明を入力

于 2012-12-20T17:42:00.877 に答える
1

デリゲートを設定した場所を再確認してください。デリゲートがメソッドを呼び出すときnilに、何も起こりません。-handleTap:-didTapImageData:atIndex:

于 2012-12-20T17:21:12.143 に答える