Как добавить контроллер навигации в приложение на основе представления?

Можно ли добавить приложение UINavigationController в приложение вида, которое наследуется от UIViewController, а не UITableViewController? Как это делается?

Ответ 1

Да, вы можете иметь контроллеры навигации в любом приложении на основе представления, будь то на уровне корня (например, при создании шаблона на основе навигации в Xcode) или с помощью корня TabBar или с любым Root.

Один пример, представляющий модальное представление, включая навигацию (используемую в моем приложении для отображения ряда форм):

    UIViewController *control = [[MyViewController alloc] initWithNibName: @"MyViewController" bundle: nil];
    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: control];
    [self presentModalViewController: navControl animated: YES];
    [control release];

В другом примере, если вы хотите иметь его на корневом уровне, но не создали приложение с шаблоном навигации, в AppDelegate didFinishLaunching (...):

    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: control];
    [window setRootViewController: navControl];
    [navControl release];

Вы также можете установить его в Interface Builder, настроив класс используемого контроллера View (UIViewController заменен на UINavigationController).

Надеюсь, это ответит на ваш вопрос (извините за предыдущее обсуждение).

Ответ 2

Я создал пример кода, чтобы понять, как создать UITabBarController, который создается с помощью Container viewcontroller, включая несколько диспетчеров навигации https://github.com/damienromito/CustomTabBarController