我对目标c和iOS非常新。这是我的第一个应用程序,所以请耐心等待。
我只是试图制作一个页面,其中包含一些从文本文件中动态创建的按钮,这将在webview中打开一个页面。
我的代码基于此how can i pass any kind of parameter in UiButton action?
MyButton.h
#import <Foundation/Foundation.h>
@interface MyButton : UIButton
{
NSString *_linkURL;
}
@property (nonatomic, retain) NSString *linkURL;
@end
MyButton.m
#import "MyButton.h"
@implementation MyButton
@synthesize linkURL = _linkURL;
@end
然后在我的ViewController.m文件中,我导入MyButton并尝试使用它来创建将URL作为自己的属性的按钮。
MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
[button setLinkURL:URL]; //THIS IS THE LINE THATS GIVING ME THE unrecognized selector at instance error
然后我继续在buttonPressed方法中获取URL,但我似乎无法通过这一个错误。我不知道我做错了什么。
答案 0 :(得分:5)
问题在于这一行:
MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
应该是:
MyButton *button = [MyButton buttonWithType:UIButtonTypeRoundedRect];
如上所述,您创建的是UIButton
而不是MyButton
的实例。
答案 1 :(得分:2)
你的问题在于这一行:
MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
您正在向UIButton
投射MyButton
,但UIButton
类型的对象不具有MyButton
对象的属性。你需要这样的东西:
MyButton *button = [[MyButton alloc] initWithType:UIButtonTypeRoundedRect];