【发布时间】:2014-10-11 16:50:54
【问题描述】:
我是 ObjC 的新手,我正在尝试在 ViewController 文件之外创建 Button(遵循 MVC 范例)。 我做了什么:
.h
@interface MainMenu : UIButton
-(UIButton *)addButton;
@end
.m
@implementation MainMenu
-(UIButton *)addButton {
UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(50.0, 50.0, 200.0, 75.0)];
[button setBackgroundColor:[UIColor colorWithRed:1.0
green:1.0
blue:0.0
alpha:1.0]];
[button setTitle:@"TITLE"
forState:UIControlStateNormal];
return button;
}
@end
在 ViewController 中,我想在屏幕上创建按钮并使其响应触摸事件。所以
.m
@implementation ViewController
-(void)viewDidLoad {
[super viewDidLoad];
MainMenu *menuButton = [[MainMenu alloc] init];
[menuButton addTarget:self
action:@selector(ButtonClick)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:menuButton];
}
-(void)ButtonClick {
NSLog(@"You clicked on button!!!");
}
@end
我可以通过在 ViewController.m 文件中实现 all 来使其工作,但希望我可以分开。上面的代码没有显示按钮
第二件事:我尝试将 addTarget:action:forControlEvents: 方法添加到 MainMenu.m 而不是 ViewController.m 但我无法使其正常工作,因为我需要将 ViewController 作为目标和方法 ButtonClick 从 ViewController.m 传递为一个选择器(我猜)
所以我很感兴趣如何根据 MVC 使它正确? 谢谢!
【问题讨论】:
标签: objective-c ios7 model-view-controller