Метод addTarget UIButton нельзя использовать в IOS 4.2 - PullRequest
0 голосов
/ 24 декабря 2010

У меня UIButton сделан программно, и я хочу добавить цель и действие для этой кнопки.у меня есть метод addTarget: action: forControlEvents:

в IOS 4.1, этот метод обнаружен, но в 4.2 его нет, вот мой код

UIButton *moreButton = [[[UIButton alloc] init] autorelease];

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
    if(version <= 4.1){
        moreButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(6.3+5*widthSegment, 0.0, widthSegment, heightSegment)];
        [moreButton addTarget:self action:@selector(getPopOverMore:) forControlEvents:UIControlEventTouchUpInside];
    }
    else{
        //version 4.2
        NSLog(@"versi 4.2");
        moreButton = [UIButton buttonWithType:UIButtonTypeCustom];
        moreButton.frame = CGRectMake(6.3+7*widthSegment, 0.0, widthSegment, heightSegment);
        [moreButton addTarget:self action:@selector(getPopOverMore:) forControlEvents:UIControlEventTouchUpInside];
    }

и это метод действия:

- (IBAction)getPopOverMore:(id)sender{

if(moreFileController == nil) {

    moreFileController = [[MoreFilePopController alloc]
                          initWithStyle:UITableViewStylePlain];

    moreFileController.delegate = self;

    moreFilePopOverController = [[UIPopoverController alloc]
                                 initWithContentViewController:moreFileController];
}

CGRect frameMore = CGRectMake(6.3+5*widthSegment, 0.0, widthSegment, heightSegment);


[moreFilePopOverController presentPopoverFromRect:frameMore inView:navBar 
                         permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}

любое тело знает, что здесь не так ??

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Вам не нужно ставить IBAction на UIButton наборы вручную.

[moreButton addTarget:self action:@selector(getPopOverMore:)       
 forControlEvents:UIControlEventTouchUpInside];

You need to declare in your file.m:

-(void)getPopOverMore:(id)sender{
}
0 голосов
/ 24 декабря 2010

должно работать.также initWithFrame для <= 4.1 не требуется.Я надеюсь, что вы добавляете кнопку в качестве подпредставления где-то после этого кода. </p>

попробуйте поместить точку останова внутри - (IBAction)getPopOverMore:(id)sender{

...