iPhone: создать новое «Приложение на основе представления» = нет контроллера представления? - PullRequest
0 голосов
/ 20 июня 2010

Я создал новый iPhone "View-based Application" в Xcode.Затем я добавил новый «UIViewController subclass» и проверил «с XIB для пользовательского интерфейса». Теперь у меня возникает проблема: после подключения всех переменных и обработчиков сообщений я не могу поместить новый контроллер в стек, используя следующий код:

[self.navigationController pushViewController:self.cabinetController
                                     animated:YES];

Все переменные и представления подключены правильно, поэтому я могу думать только о том, что я так и делаю, запихивая его в "navigationController".здесь не хватает? (Я очень новичок в программировании для iPhone и Apple в целом, так что это, вероятно, очень простой упущение).

Я понимаю, что предоставлено недостаточно информации ... вот ссылка на проектОбратите внимание, что это учебное упражнение имеет несколько творчески названных классов.

http://files.me.com/nippysaurus/4yqz8t

Ответы [ 3 ]

0 голосов
/ 20 июня 2010

Если вы посмотрите на self.navigationController, вы поймете, что это nil. Обмен сообщениями ноль не помешает, поэтому здесь нет сообщений об ошибках.

Добавьте еще один слой с UINavigationController и добавьте RandomShitViewController (хорошее название, кстати) в качестве его корневого контроллера.

Контроллер навигации обрабатывает часть push / pop, ваш старый контроллер управляет его просмотром.

0 голосов
/ 20 июня 2010

В вашем appDelegate создайте переменную экземпляра UINavigationController, а затем используйте существующий viewController в качестве rootViewController контроллера навигации.

например. в чистом коде с использованием UITableViewController (вы также можете использовать xibs, что, вероятно, делает ваше шаблонное приложение).

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

  // Create root view and navigation controller
  UITableViewController *rootViewController = [[[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
  self.navigationController = [[[UINavigationController alloc] initWithRootViewController:rootViewController] autorelease];

  // Not necessary if you're using xibs
  self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

  // Add the nav controller's root view to the window
  [window addSubview:navigationController.view];
  [window makeKeyAndVisible];

  return YES;
}
0 голосов
/ 20 июня 2010

Вам необходимо изменить контроллер представления на контроллер навигации, с его корневым контроллером представления, установленным в качестве текущего контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...