Вопрос

Я пытаюсь создать новое представление на моем навигационном контроллере, используя:

    -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [myTableView release];
 [self.navigationController pushViewController:myTableView animated:YES];
}

Я сталкиваюсь со следующей ошибкой:

2010-02-25 21:19:57.717 CoC[3399:20b] *** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660
2010-02-25 21:19:57.718 CoC[3399:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660'
Это было полезно?

Решение

вы освобождаете объект, который вы только что выделили, что не имеет никакого смысла.

 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
     [myTableView release];

отпустите MyTableView после того, как вы поместите его в стек

Другие советы

Отмена вызова после нажатия кнопки.

2010-02-25 21:19:57.717 CoC[3399:20b] * ** -[Страница переключения UIViewController:]:нераспознанный селектор, отправленный экземпляру 0xf1a660

Ваш сбой не из-за кода, о котором вы упомянули.Но в вашем коде есть ошибка, такая как release и thenpush.Измените это как:

 -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:myTableView animated:YES];
 [myTableView release];
}

Я предполагаю, что у объекта, который вызывает метод "switchPage:", возникла какая-то проблема.Проверьте это или покажите вызов этого метода для получения любой помощи

С уважением, Манджунатх

Вышесказанное в порядке, когда контроллер subview был помещен в стек навигации, количество сохранений должно быть увеличено, затем вы должны освободить его после операции push.

Вы уверены, что вам не нужно поменять местами последние две строки?Сначала нажмите на контроллер, затем отпустите его, а не наоборот...:)

Как упоминалось ранее, вы отпускаете контроллер просмотра перед тем, как нажать на него.Когда вы нажимаете его на навигационный контроллер, количество удержаний увеличивается, и затем вы можете отпустить его.

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top