Нераспознанный селектор отправлен на экземпляр - PullRequest
3 голосов
/ 26 февраля 2011

Кто-нибудь знает, почему я получаю эту ошибку?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CustomRaisedTabViewController cancel:]: unrecognized selector sent to instance 0x4d321e0'

Это код ошибки.Это у меня CustomTabViewController.Ошибка происходит, когда я нажимаю кнопку «Отмена».

-(IBAction)showPostModalViewController {

PostActionModalViewController *addController = [[PostActionModalViewController alloc] 
                                                initWithNibName:@"PostActionModalView" bundle:nil];

// Configure the PostAddViewController. In this case, it reports any
// changes to a custom delegate object.

addController.delegate = self;



// Create the navigation controller and present it modally.

UINavigationController *navigationController = [[UINavigationController alloc]
                                                initWithRootViewController:addController];

[self presentModalViewController:navigationController animated:YES];

UIBarButtonItem *cancelButton =
[[UIBarButtonItem alloc] initWithTitle: @"Cancel"
                                 style: UIBarButtonItemStylePlain
                                target: self
                                action: @selector(cancel:)];
addController.navigationItem.rightBarButtonItem = cancelButton;
[cancelButton release];


//[self presentModalViewController:addController animated:true];
[navigationController release];

[addController release];
}

-(IBAction)cancel {
    [self.parentViewController dismissModalViewControllerAnimated:YES];
}

Ответы [ 3 ]

9 голосов
/ 26 февраля 2011

Поскольку метод cancel: не является cancel, это то, что вы определили.

Измените ваше действие cancel, чтобы оно выглядело так:

- (IBAction)cancel:(id)sender {
    ...
}
1 голос
/ 24 февраля 2013
action: @selector(cancel:) 

Для селектора действий, который принимает параметр!отмена: это означает, что будет принимать другой параметр.

изменить ваш метод на

-(IBAction)cancel:(id)sender{
// Do wat you want
}

or

-(IBAction)cancel:(UIButton *)btnSender{
/// Do what you want
}
0 голосов
/ 26 февраля 2011

Вы должны изменить подпись метода отмены в

-(IBAction)cancel:(id)sender
 { 
   [self.parentViewController dismissModalViewControllerAnimated:YES]; 
 }

когда вы добавили действие к вашему cancelButton (во время инициализации), вы указали селектор «cancel:», это означает, что он будет называться методом с одним параметром (кнопка отправителя)

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