故事板自定义类被忽略
Posted
技术标签:
【中文标题】故事板自定义类被忽略【英文标题】:Storyboard custom class is ignored 【发布时间】:2017-08-24 19:14:27 【问题描述】:我正在尝试将自定义视图控制器添加到我的情节提要中。视图控制器KTResearchUploadViewController
出现在“自定义类”类下拉列表中,我已经选择了它。在视图控制器内部(在情节提要上),我有一个链接到 KTResearchUploadViewController
的按钮,用于在主要操作上调用方法 handleUploadButtonPress
。
按下按钮时,我收到此错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController handleUploadButtonPress:]: unrecognized selector sent to instance 0x11c33b740'
它似乎试图在UIViewController
上调用handleUploadButtonPress
而不是KTResearchUploadViewController
。我在这里做错了什么?
KTResearchUploadViewController.h
#import <UIKit/UIKit.h>
@interface KTResearchUploadViewController : UIViewController
@end
KTResearchUploadViewController.m
#import "KTResearchUploadViewController.h"
@interface KTResearchUploadViewController ()
@end
@implementation KTResearchUploadViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)handleUploadButtonPress:(id)sender
NSLog(@"Button pressed!");
@end
【问题讨论】:
***.com/questions/17852287/… 尝试将 ibaction 添加到您的 .h 【参考方案1】:将 IBAction 添加到您的 .h
#import <UIKit/UIKit.h>
@interface KTResearchUploadViewController : UIViewController
- (IBAction)handleUploadButtonPress:(id)sender;
@end
还要确保 IB 中的按钮与代码之间存在连接
https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiosAppsSwift/ConnectTheUIToCode.html
【讨论】:
我尝试了这两个,现在我收到了这个错误:'[<UIViewController 0x11c438f20> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key uploadButton.'
上传按钮的密钥来自哪里?
uploadButton
是我给故事板中的按钮和KTResearchUploadViewController
之间的联系起的名字
尝试将其更改为 handleUploadButtonPress - 如果它仍然无法正常工作,我可以在大约 10 分钟内对其进行测试
我在 .m 和 .h 文件中都定义了 handleUploadButtonPress
。 uploadButton
只是对UIButton
的引用(虽然我实际上并没有使用它)。【参考方案2】:
我不确定这是否是原始问题的原因,但我刚刚遇到了类似的问题并最终出现在这里。最终我发现我的ViewController
子类不是我在 Xcode 中运行的目标的成员。由于某种原因,在这种情况下它只是默认使用ViewController
。
【讨论】:
以上是关于故事板自定义类被忽略的主要内容,如果未能解决你的问题,请参考以下文章