pushViewController краше - PullRequest
       12

pushViewController краше

0 голосов
/ 26 февраля 2010

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

    -(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'

Ответы [ 6 ]

2 голосов
/ 26 февраля 2010

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

1 голос
/ 03 ноября 2010

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

1 голос
/ 26 февраля 2010

2010-02-25 21: 19: 57.717 CoC [3399: 20b] * ** - [UIViewController switchPage:]: нераспознанный селектор отправлен в экземпляр 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:, возникли некоторые проблемы.Проверьте это или покажите вызов этого метода для любой помощи

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

1 голос
/ 26 февраля 2010

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

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

освободить myTableView после того, как вы поместите его в стек

0 голосов
/ 26 февраля 2010

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

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
0 голосов
/ 26 февраля 2010

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

...