Создание проекта на основе навигации, начиная с проекта на основе окна - PullRequest
1 голос
/ 16 сентября 2011

Я просто пытаюсь понять, как строятся разные типы проектов, и я должен что-то упустить.

Я пытаюсь начать с оконного приложения и просто добавить контроллер навигации, чтобы понять, как различные компоненты работают с делегатом Window и App.

Вот что я сделал:

  • Создан проект на основе окна
  • В моем приложении Delegate.h я добавил
    @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

В моем приложении делегат. Я добавил:

@synthesize navigationController;

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}
  • В файле MainWindow.xib я добавил NavigationController под окном
  • Создан новый подкласс UIViewController (FirstView.h / m)
  • Указал контроллер корневого представления NavigationController на FirstView

Строит чисто, при запуске я получаю полностью белый экран.

Чего мне не хватает?

Ответы [ 3 ]

1 голос
/ 16 сентября 2011

На самом деле barfoon .. Ваш навигационный контроллер не содержит никаких UIViewController. Прежде всего создайте новый UIViewController и затем добавьте его к UINavigationController. UINavigationController подобен стеку, который обрабатывает каждый добавленный UIViewController, то есть перемещается как вперед и назад. Ex ..

ToDoController *toDoObj = [[ToDoController alloc] initWithNibName:@"ToDoController" bundle:[NSBundle mainBundle]];
UINavigationController *toDoNav = [[UINavigationController alloc] initWithRootViewController:toDoObj];
[self.window addSubview:toDoNav.view];
1 голос
/ 16 сентября 2011

Разобрался - мне пришлось создать новую выходную ссылку и подключить контроллер навигации к делегату приложения в .xib.

1 голос
/ 16 сентября 2011

Добавить это [self.window addSubview:self.navigationController.view]; Вам необходимо добавить представление контроллеров навигации в окно. Также убедитесь, что розетка для контроллера навигации подключена. Вам также необходимо добавить контроллер корневого представления для контроллера навигации

...