NavigationController, почему это не будет работать так, как я хочу?

Я выполняю четвертое задание на Стэнфордском курсе разработчиков iPhone.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
    ListViewController *listview = [[ListViewController alloc] initWithNibName:@"ListView" bundle:[NSBundle mainBundle]];
    [[self navigationController] pushViewController:listview animated:NO];
    [listview release];
}

Итак, я пытаюсь получить свое представление списка внутри представления навигационных контроллеров. но происходит то, что список получает новое представление с кнопкой «вернуться к корневому контроллеру» на панели навигации. и когда я щелкаю по нему, я возвращаюсь к пустому представлению навигационного контроллера.

Что я делаю неправильно?


person Oscar    schedule 21.12.2009    source источник


Ответы (2)


если вы хотите, чтобы ваш ListViewController был rootViewController, вы должны сделать что-то вроде этого

[navigationController setViewControllers:[NSArray arrayWithObject:listView] animated:YES];

вместо pushViewController. pushViewController просто добавьте свой listView в верхнюю часть стека контроллера. начальный viewController остается с пустым представлением.

person Morion    schedule 21.12.2009
comment
Вот что я пытаюсь сделать, как мне добавить его в стек? - person Oscar; 21.12.2009

Вы также можете назначить свой ListViewController в качестве контроллера корневого представления для вашего контроллера навигации во время создания экземпляра:

[[UINavigationController alloc] initWithRootController:listview ]
person ennuikiller    schedule 21.12.2009