Что-то не так с кнопкой на iphone - PullRequest
0 голосов
/ 13 декабря 2011

хорошо, я делаю приложение из примера UiWebView, который я нашел. и мне нужно было добавить кнопку, но способ работы этого примера похож на phonegap, поэтому я понял, что мне нужно добавить кнопку в качестве подпредставления к окну, поэтому я получил свою кнопку и настроил ее на нажатие, но когда я нажмите его, мое приложение вылетает ... может кто-нибудь помочь? вот мой фрагмент кода:

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    myLoadingLabel.hidden = YES;
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    [window addSubview:webView];
//my button
    UIButton *playButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    playButton.frame = CGRectMake(122, 394, 76, 76);
    [playButton setTitle:@"Play" forState:UIControlStateNormal];
    playButton.backgroundColor = [UIColor clearColor];
    [playButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal ];
    UIImage *buttonImageNormal = [UIImage imageNamed:@"mic.png"];
    UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
    [playButton setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
    UIImage *buttonImagePressed = [UIImage imageNamed:@"mic.png"];
    UIImage *strechableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0];
    [playButton setBackgroundImage:strechableButtonImagePressed forState:UIControlStateHighlighted];
    [playButton addTarget:self action:@selector(playAction:) forControlEvents:UIControlEventTouchUpInside];
    [window addSubview:playButton];
}

-(void)playAction {
    NSLog(@"Button Pressed!");
}

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebView_ExampleAppDelegate playAction:]:

о, и я знаю, что это длинный выстрел, но мне нужна эта кнопка за пределами веб-страницы, потому что она должна начать запись звука при нажатии, затем при повторном нажатии она должна остановить запись и сохранить, запустить команду с системой () ;, а затем помещает данные, полученные из системной команды, в используемое представление uiwebview ... так что, если кто-то знает какой-то код, я был бы очень признателен, и это приложение для джейлбрейка, поэтому с системной командой все будет в порядке. Спасибо !!!

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Вы вызываете метод с именем playAction:, но вы реализуете метод с именем playAction.Следите за отсутствующей толстой кишкой.Сбой, скорее всего, связан с этой проблемой.

Для быстрого исправления замените

[playButton addTarget:self action:@selector(playAction:) forControlEvents:UIControlEventTouchUpInside];

на

[playButton addTarget:self action:@selector(playAction) forControlEvents:UIControlEventTouchUpInside];
1 голос
/ 13 декабря 2011

Проблема заключается в следующем:

@selector(playAction:)

против

- (void)playAction

Первый относится к методу -playAction:, который принимает один параметр, но вы реализовали методназывается -playAction, который не принимает параметров.Удалите двоеточие из блока @selector, и оно должно работать.

...