2010-09-21 2 views
0

Я пытаюсь отредактировать кнопку добавления, чтобы перейти к другому представлению. Но я получаю сообщение об ошибкеНажмите на другое представление с помощью UIBarButtonSystemItemAdd

-(void)locationAdd:(id)sender{ 
if([self.parentViewController isKindOfClass:[UINavigationController class]]){ 
    UINavigationController *parent = (UINavigationController *)self.parentViewController; 
    if ([[parent viewControllers] objectAtIndex:0] == self) { 
    LocationsAddViewController *alocationAddViewController = [[[LocationsAddViewController alloc] initWithNibName:@"LocationAddView" bundle:[NSBundle mainBundle]] autorelease]; 
    //self.locationAddViewController = alocationAddViewController; 
    alocationAddViewController.title = @"Toevoegen"; 
    [self.parentViewController pushViewController:alocationAddViewController animated:YES]; 
    } 
    else if([[parent viewControllers] objectAtIndex:2] == self){ 
    LocationsAddViewController *alocationAddViewController = [[[LocationsAddViewController alloc] initWithNibName:@"LocationAddView" bundle:[NSBundle mainBundle]] autorelease]; 
    alocationAddViewController.title = @"Toevoegen"; 
    [self.parentViewController pushViewController:alocationAddViewController animated:YES]; 
    } 
} 
} 

Поскольку точка зрения может быть достигнуто с 2 другими видами, и он должен выглядеть по-другому, я использовал

if([self.parentViewController isKindOfClass:[UINavigationController class]]){ 
     UINavigationController *parent = (UINavigationController *)self.parentViewController; 
     if ([[parent viewControllers] objectAtIndex:0] == self) { 

, чтобы проверить, где оно происходит от.

Проблема в: [self.parentViewController pushViewController: alocationAddViewController animated: YES]; Я получаю сообщение об ошибке:

+ [LocationsTableViewController pushViewController: анимированное]: непризнанный селектор отправлен в класс 0x23510 *** Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «+ [LocationsTableViewController pushViewController: анимированный: ]: непризнанный селектор, отправленный в класс 0x23510 '

Может кто-нибудь мне помочь? Что я сделал не так?

ответ

0

Ваша ошибка указывает на то, что вы пытаетесь вызвать pushViewController:animated: на свой объект класса LocationsTableViewController. Это не должно быть возможным с учетом кода, который вы опубликовали. Вы уверены, что вы вставили в точный код, который забросил исключение? (Это подозрительно, что ваши блоки if и else if делают то же самое.)