Непризнанный селектор, отправленный в экземпляр + сбой при нажатии UIBarButtonItem

Я получаю "непризнанный селектор NSException", отправленный в экземпляр ", а затем мое приложение вылетает всякий раз, когда нажимается btnReload ***************. Я включил код для того, что метод делает для действия, однако возникает ошибка/исключение, имеет ли метод testChangingViewController код.

Весь следующий код находится в моем классе UIViewController.

- (void)loadView //use loadView because not a storyboard based GUI.
{
 [super loadView];

 *************** *btnReload =[[*************** alloc] initWithBarButtonSystemItem:**************************** target:self action:@selector(testChangingViewController:)];
 self.navigationController.topViewController.navigationItem.leftBarButtonItem = btnReload;
 btnReload.enabled=TRUE;

 //self.view = [[UIView alloc] initWithFrame:[[UIScr een mainScreen] bounds]];
 [self.view setBackgroundColor:[UIColor whiteColor]];

 [self setTitle:@"Navigation"]; //navigation bar title tied to the view controller it is managing.

 UIImageView *friendsIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"change_user-512"]];
 [friendsIcon setFrame:CGRectMake(60, 130, 70, 70)];
 [self.view addSubview:friendsIcon];

 UIImageView *statusIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"talk-512"]];
 [statusIcon setFrame:CGRectMake(180,130, 70, 70)];
 [self.view addSubview:statusIcon];

 UIView *square = [[UIView alloc] initWithFrame:CGRectMake(250, 250, 50, 50)];
 [square setBackgroundColor:[UIColor orangeColor]];
 [self.view addSubview:square];
 // Do any additional setup after loading the view.
}



-(void)testChangingViewController
{
 UITableViewController *newViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
 [self.navigationController pushViewController:newViewController animated:YES];
}
1 ответ

Вы назначаете *************** @selector (testChangingViewController :) (двоеточие в конце, один параметр), но вы определяете метод testChangingViewController (без двоеточия, без параметров). Селектор, который он ищет, который принимает параметр, отсутствует, следовательно, ваша ошибка. Эти целевые селекторы всегда имеют один параметр - "отправитель", то есть UIControl, который сгенерировал событие.

licensed under cc by-sa 3.0 with attribution.