Я делаю AP iPhone, которое содержит viewController класс (PhotoListViewController). Представление этого viewController имеет подпредставление, которое содержит кнопку, присоединенную как подпредставление. Я пытаюсь использовать addTarget:action:forControlEvent метод для вызова метода экземпляра класса PhotoListViewController для выполнения действия при нажатии кнопки, но метод не называют. Какие-либо мысли о том, как сделать эту работу?
Вот подходящий код. Я знаю Ваше первое, хотя будет то, почему я - вложенные подпредставления, но это просто дистиллированная версия моей программы - существуют причины, я делаю вложение. Я знаю, что существуют, вероятно, другие способы настроить программу, таким образом, я не должен делать, это вложение, но мой реальный вопрос - почему это не работает?
/Code/
@implementation PhotoListViewController
- (void)loadView {
[super viewDidLoad];
//load elements into the viewController
//first create the frame
CGRect frameParent = CGRectMake(0, 0, 0, 0);
UIView *viewPerson = [[UIView alloc] initWithFrame:frameParent];
CGRect frameChild = CGRectMake(0, 20, 0, 0);
UIView *newView = [[UIView alloc] initWithFrame:frameChild];
UIButton *btnShow = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnShow.frame = CGRectMake(230, 120, 80, 30);
[btnShow setTitle:@"View!" forState:UIControlStateNormal ];
[btnShow addTarget:self
action:@selector(viewPhoto_click:)
forControlEvents:UIControlEventTouchUpInside];
[newView addSubview:btnShow];
[viewPerson addSubview:newView];
[newView release];
[self setView:viewPerson];
[viewPerson release];
}
- (void)viewPhoto_click:(UIButton*)sender {
NSLog(@"HI");
}
Возможно, это не связано, но оба viewPerson
и newView
имеют ширину и высоту 0. Вы может захотеть дать этим представлениям ненулевой размер (3-й и 4-й аргументы CGRectMake
).