Uibutton touchupinside动作打破了故事板应用程序

时间:2013-08-23 13:29:33

标签: iphone ios objective-c uibutton storyboard

Custom View For Picker

我正在尝试创建一个自定义Picker视图,将touchupinside事件连接到我的PickerViewViewController.h类作为函数

- (IBAction)Done:(id)sender;

在.m

中添加了功能
- (IBAction)Done:(id)sender {

 NSLog(@"Done");

}

将视图添加到我的主视图中

 PickerViewViewController *pic=[self.storyboard instantiateViewControllerWithIdentifier:@"Pickerview"];
[self.view addSubview:pic.view];

Custom Picker Instant Added

但是当我点击完成按钮它崩溃了,我在轻松使用XIB之前完成了它,帮助?

1 个答案:

答案 0 :(得分:1)

首先尝试将您的功能重命名为

- (IBAction)doneButtonPressed:(id)sender

系统可以为某些事情保留完成(不确定,但之前发生在我身上)

你可以放弃故事板......并使用.xib :)创建一个普通的ViewController。实际上不需要ViewController。只需将UIView和.xib链接到您的UIView即可。

要将.xib附加到UIView,您可以使用:

+ (CustomViewName *)getNewCustomView {
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"CustomViewName" owner:nil options:nil];
for (NSObject *obj in xib) {
    if ([obj isKindOfClass:[CustomViewName class]]) {
        return (CustomViewName *)obj;
    }
}
return nil;
}

并将其简化为:

CustomViewName *customView = [CustomViewName getNewCustomView];
customView.frame = CGRectMake(...);
self.view addSubview:customView;

同样在您的.xib文件中,您必须设置您的类的名称...但是在VIew上没有像文件所有者那样:

enter image description here