故事板应用程序中的 Uibutton touchupinside 动作中断程序
Posted
技术标签:
【中文标题】故事板应用程序中的 Uibutton touchupinside 动作中断程序【英文标题】:Uibutton touchupinside action breaks program in storyboard app 【发布时间】:2013-08-23 13:29:32 【问题描述】:我正在尝试创建一个自定义 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];
但是当我点击完成按钮时它崩溃了,我在使用 XIB 之前已经完成了它,帮助?
【问题讨论】:
您不应该将另一个视图控制器的视图添加到您的视图中,而不使该控制器成为子视图控制器。但问题是,为什么要从另一个控制器添加选择器,而不仅仅是将选择器视图添加到主控制器的视图中? 【参考方案1】:首先尝试将您的函数重命名为
- (IBAction)doneButtonPressed:(id)sender
Done 可能会被系统保留用于某些事情(不确定,但它以前发生在我身上)
您可以只删除情节提要...并使用 .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 上不是像这样在文件的所有者上:
【讨论】:
尝试了新名称但仍然相同,当我为表格视图分类单元格时,我遇到了类似的问题,当我尝试将单元格中的按钮连接到它的类函数时它崩溃了。我认为这是因为故事板不知道如何避免这个错误 你可以放下情节提要......然后用 .xib 制作一个普通的 ViewController :) cant drop storyboard in the current project in this stage可能在下一个项目中。以上是关于故事板应用程序中的 Uibutton touchupinside 动作中断程序的主要内容,如果未能解决你的问题,请参考以下文章