Я прочитал руководство Apple «Ваше первое приложение для iOS», и все, что мне кажется совершенно прозрачным. Однако, когда я пытаюсь понять, как работает шаблон приложения IOS, представленный в XCode, я сталкиваюсь с некоторыми интересными головоломками.Шаблон приложения для iOS на основе формы
Я понимаю, что приложение получает основное имя файла nib (обычно, MainWindow.xib) из файла * -Info.plist. Я не понимаю, как XCode знает, какой файл nib связан с контроллером, который создается с помощью этого шаблона приложения на основе View по умолчанию. В руководстве, вы начинаете с приложением окна на основе, и вы «должны написать» что-то вроде:
MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
, что делает прекрасный смысл. Тем не менее, оказывается, что в шаблоне приложения iOS на основе View нет такой вещи и что эта спецификация nib действительно не нужна в первую очередь, если вы создали подкласс UIViewController с опцией «С XIB для пользовательского интерфейса "проверено. Мой вопрос в том, как XCode знает, какой nib связан с этим контроллером, т. Е. Он сохраняет это соединение в некоторых файлах или, может быть, с помощью какого-либо соглашения (одно имя для контроллера и файла nib, возможно)? Более того, где же «Loaded from» MyViewBasedAppController »подзаголовок поступает из представления конструктора интерфейса контроллера в MainWindow.xib? Это определенно не существует, когда я добавляю контроллер вручную, поэтому мне любопытно, какую магию делает XCode за моей спиной, когда я думаю, что просто выбираю простой шаблон кода.
Отличное объяснение всего процесса, большие пальцы. –
Ну, вы совершенно правы в создании классов от их имени, но это не совсем то, что я спросил. Что вы здесь говорите: «При этом он откроет другой xib и продолжит делать то же самое». похоже, не отвечает на мой вопрос: как разрешено, что файл nib для контроллера NibTestViewController был тем самым файлом NibTestViewController.xib? Иными словами, как известно, что в этом случае должен быть любой файл nib для загрузки (так как мы могли бы четко создать контроллер без файла nib)? – itim
«... Посмотрев на его атрибуты (первая вкладка в инспекторе с графикой ползунка), вы также увидите, что отдельный файл nib указан как содержащий его основные данные» - извините, я действительно устал, когда прочитав это. Этот ответ на самом деле прибивает его, большое спасибо! – itim