Сбой приложения при вызове UIActionSheet - PullRequest
1 голос
/ 21 октября 2011

Я пишу приложение для iPad. В этом приложении я должен использовать кнопку «Поделиться» на панели навигации на всех экранах. Я применил кнопку «Поделиться» в своем домашнем классе. Я написал следующий код, чтобы применить кнопку на панели навигации:

CGRect frame5 = CGRectMake(835.0, 0.0, 40.0, 40.0);
UIImage *buttonImage5 = [UIImage imageNamed:@"ShareIcon.png"];
UIButton *ShareButton = [UIButton buttonWithType:UIButtonTypeCustom];
ShareButton.frame = frame5;
[ShareButton setBackgroundImage:buttonImage5 forState:UIControlStateNormal];
ShareButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
ShareButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
[ShareButton addTarget:self action:@selector(actionSheet) forControlEvents:UIControlEventTouchUpInside];
[ShareButton setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar addSubview:ShareButton];

Кнопка «Поделиться» используется для отправки электронной почты или печати экрана. Для этого я использовал UIActionSheet. Я написал следующий метод для применения UIActionSheet:

-(void)actionSheet:(id)sender
{
    UIActionSheet *popup = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Email", @"Print", nil];
    [popup showFromRect:CGRectMake(720.0, 3.0, 40.0, 40.0) inView:[self view] animated:TRUE];
    [popup showFromBarButtonItem:(UIBarButtonItem *)sender animated:TRUE];
    [popup release];
}

Этот метод применяется к кнопке «Поделиться». Когда я собираю и запускаю свое приложение, нет никаких ошибок или предупреждений, т.е. Но когда я нажимаю кнопку «Поделиться», приложение вылетает, и в окне консоли отладчика отображается следующее:

[Session started at 2011-10-21 21:26:58 +0530.]
2011-10-21 21:27:03.895 NewBostonEndoscopy[1351:207] -[Home actsht]: unrecognized selector sent to instance 0x6227010
2011-10-21 21:27:03.898 NewBostonEndoscopy[1351:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Home actsht]: unrecognized selector sent to instance 0x6227010'

Я не понимаю, почему это происходит. Есть предположения? Любая помощь будет высоко оценена. Спасибо и всего наилучшего Prateek

Ответы [ 3 ]

1 голос
/ 21 октября 2011

[ShareButton addTarget:self action:@selector(actionSheet) forControlEvents:UIControlEventTouchUpInside]; изменить на: [ShareButton addTarget:self action:@selector(actionSheet:) forControlEvents:UIControlEventTouchUpInside]; Отсутствующий символ «:» после actionSheet является виновником.

1 голос
/ 21 октября 2011

Вы показываете всплывающее окно дважды, я не уверен, является ли это причиной вашего сбоя, но попробуйте удалить строку

[popup showFromRect:CGRectMake(720.0, 3.0, 40.0, 40.0) inView:[self view] animated:TRUE];
0 голосов
/ 21 октября 2011

Как говорится в журнале, вы вызываете -actsht на Home, который, по-видимому, не реализует метод с этим именем.Попробуйте найти в документе actsht и посмотрите, что вы имели в виду.

Возможно, вы использовали его в инициализаторе UIBarButtonItem, например, -initWithBarButtonSystemItem:target:action:, и указали селектор для action, который не существует.Компилятор не заметит этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...