【发布时间】:2014-03-12 01:17:43
【问题描述】:
我正在创建一个名为 InfoAboutBlockView 的自定义 UIView,我将它添加到我的 ViewController 中并且它添加正确,但是当我在该自定义 UIView 中按下按钮时它不会触发。
我正在创建一个 xib 文件,在其中设计 UIView,然后创建 .h 和 .m 文件
InfoAboutBlockView.h:
#import <UIKit/UIKit.h>
@interface InfoAboutBlockView : UIView
- (instancetype)init2;
@property (strong, nonatomic) IBOutlet UIView *contentView;
@end
contentView 是链接到 .h 文件的 UIView。
InfoAboutBlockView.m
#import "InfoAboutBlockView.h"
@implementation InfoAboutBlockView
- (instancetype)init2 {
self = [super init];
if (self) {
[self loadViewsFromBundle];
}
return self;
}
- (void)loadViewsFromBundle {
NSString *class_name = NSStringFromClass([self class]);
[[NSBundle mainBundle] loadNibNamed:class_name owner:self options:nil];
[self addSubview:self.contentView];
}
- (IBAction)startBlockButtonPressed:(id)sender {
//This Won't Fire
}
@end
startBlockButtonPressed 是连接到 .m 文件的按钮。
我在startBlockButtonPressed 设置了一个断点,但它永远不会触发。
这就是我将自定义子视图添加到我的 ViewController 的方式:
InfoAboutBlockView *infoAboutBlockView = [[InfoAboutBlockView alloc]init2];
[self.view addSubview:infoAboutBlockView];
我尝试使用[self.view bringSubviewToFront:infoAboutBlockView]; 将其置于最前面,并检查它不是nil,并且按钮不是nil,但它不会触发。
【问题讨论】:
-
你有什么证据证明按钮的目标是
self(视图控制器)并且它的动作是startBlockButtonPressed:? -
@matt 按钮目标 is
tself, I'm setting the xibFile's Owner` 到我的InfoAboutBlockView类,然后拖动以创建一个触摸事件。 -
好吧,我和你在一起……
-
@matt 还有什么我忘了做的吗?
startBlockButtonPressed不应该着火吗?
标签: ios objective-c cocoa-touch uiview uibutton