iPhone UINavigationController внутри UIViewController - PullRequest
3 голосов
/ 21 января 2011

Шаги:

  • Элемент списка
  • Создайте проект с именем Nav.
  • Создайте новый UIViewController BaseViewController (с XIB) и FirstViewController (с XIB).
  • В NavAppDelegat.h определить переменную baseController

    @interface NavAppDelegate : NSObject <UIApplicationDelegate> {
    BaseViewController *baseController;
    }
    @property (nonatomic, retain) IBOutlet BaseViewController *baseController; 
    
  • В NavAppDelegat.m добавьте baseController в окно:

    @synthesize baseController;
    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [self.window addSubview:baseController.view];
    [self.window makeKeyAndVisible];
    return YES;
    }
    
  • Откройте файл BaseViewController.xib и добавьте UINavigationController, установите для его класса Root View Controller и XIB значение FirstViewController (в инспекторе).

  • Также подключите переменную navigationController к UINavigationController.

Полагаю, это должно показать мне FirstViewController с панелью навигации. Если я делаю это непосредственно в MainWindow.xib, все работает так, как я ожидал, но здесь я не вижу панель навигации. Что мне не хватает? THx!

UPDATE: Так что проблема только в том, что в случае, если я использую UINavigationController внутри какого-то дополнительного контроллера (здесь BaseViewController.xib) вместо MainWindow.xib, я не вижу панель навигации.

1 Ответ

3 голосов
/ 21 января 2011

Я не могу сказать, пытаетесь ли вы подключить свой навигационный контроллер непосредственно к окну, просто из второго XIB (который должен работать) или вы делаете свой навигационный контроллер вторым представлением, которое выиграло't work.

UINavigationController предназначен только для использования в качестве основного подпредставления UIWindow или в качестве подпредставления UITabController.Apple не хочет, чтобы вы встраивали навигационный контроллер в другие контексты.

Подробнее см. Интерфейсы контроллера комбинированного представления в Руководстве по программированию контроллера представления.

...