iOS - Инициализация UIViewControllers - PullRequest
1 голос
/ 07 сентября 2011

В моем приложении у меня есть UIViewController и UIView с именем

  • HomeViewController
  • HomeView

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

HomeViewController *h = [[HomeViewController alloc] init];

Он пытается загрузить viewController, используя nib-файл для моего UIView вместо nib для моего ViewController. Если я загружаю, используя initWithNibNamed, он работает нормально.

Это ошибка в iOS, у меня никогда не было этой проблемы раньше. Я работаю против iOS 5 бета 5

1 Ответ

2 голосов
/ 16 декабря 2012

Это способ, которым вы называете свое представление и viewcontroller, который вызывает проблему. Из документации Apple (посмотрите на свойство nibName)

  1. Если имя класса контроллера представления заканчивается словом «Controller», как в MyViewController он ищет файл пера, имя которого соответствует имя класса без слова «Controller», как в MyView.nib.

  2. Он ищет файл пера, имя которого совпадает с именем контроллера представления учебный класс. Например, если имя класса MyViewController, оно выглядит для файла MyViewController.nib.

Если вы, например, изменили HomeView на MyHomeView, ваш код снова начнет работать. НО, используя initWithNibName: метод является рекомендуемым способом для инициализации ViewController

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