基本上,我有一个带有xib的UIViewController,用于在UIScrollView中保存内容。这将从RSS源填充。这按预期工作。我希望点击UIView,视图控制器拥有响应点击并继续前进。但是,点按应用“无法识别的选择器发送到实例”错误会导致应用崩溃。我真的不知道发生了什么。
xib视图控制器的.h文件如下所示:
@property (nonatomic,retain) IBOutlet UIImageView *article_image;
@property (nonatomic,retain) IBOutlet UILabel *article_title;
@property (nonatomic,retain) IBOutlet UILabel *article_date;
@property (nonatomic,retain) IBOutlet UIActivityIndicatorView *spinner;
@property (nonatomic,retain) NSString *preview_image;
- (void) loadPreviewImage;
然后.m文件如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGesture)];
singleTap.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:singleTap];
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
self.view.layer.shadowOpacity = 0.6;
self.view.layer.shadowRadius = 1.5;
self.view.layer.shadowOffset = CGSizeMake(0, 0);
}
- (void) singleTapGesture:(UITapGestureRecognizer *)gesture {
NSLog(@"TAPPED!");
}
即使我在xib中只放了一个简单的圆形按钮并将其附加到IBAction上 - 它也会崩溃,所以我认为我的xib设置有问题,但我不知道是什么。 .h中的那些属性从保存滚动视图的VC中填充得很好,因此xib显然知道它与之关联的文件,因此我无法弄清楚为什么它会崩溃并在点击时抛出该错误。
答案 0 :(得分:1)
解决方法是:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGesture:)];
注意选择器末尾的:
。
实际上,您的操作方法签名是:
- (void) singleTapGesture:(UITapGestureRecognizer *)gesture;
而
@selector(singleTapGesture)
宁可识别:
- (void) singleTapGesture;
希望这可以澄清这个问题。
答案 1 :(得分:0)