Почему не iOS 5.0, как приложения с открытым окном? Почему он запрашивает использование контроллеров представлений?

У меня есть приложение iOS, которое я создал с помощью шаблона Xcode 4.0 «Окно на основе приложения». Тогда он работал отлично, и он использовал iOS 4.3 SDK. Это приложение, которое просто помещает кнопки, метки и т. Д. Непосредственно в окно. Нет диспетчеров просмотра – ничего.

Но теперь, когда я обновился до Xcode 4.2 (и его iOS 5.0 SDK), и я запустил приложение, это сообщение регистрируется на консоли, когда приложение запускается в симуляторе:

«Ожидается, что в конце запуска приложений ожидается контроллер корневого представления»,

Конечно, приложение продолжает работать, но этот довольно докучливый журнал печатается при каждом запуске.

Почему это происходит? Почему iOS 5.0 предпочитает / запрашивает контроллеры представлений?

3 Solutions collect form web for “Почему не iOS 5.0, как приложения с открытым окном? Почему он запрашивает использование контроллеров представлений?”

Я не знаю конкретно, почему сообщение заносится в журнал, но интеграция между UIWindow и UIViewController возрастает в течение последних нескольких итераций iOS. iOS 4 добавила свойство rootViewController в UIWindow. Два класса работают вместе, чтобы управлять поворотом просмотра. Учитывая новые возможности, которые IOS 5 представила UIViewController (в частности, возможность создавать собственные контроллеры представления контейнеров), ясно, что отношения между этими двумя классами будут продолжать развиваться. Как вы сказали, ваше приложение продолжает функционировать в iOS 5, поэтому наличие контроллера корневого представления еще не является сложным и быстрым требованием. Возможно, есть функции, запланированные для будущих версий iOS, которые будут зависеть от наличия контроллера вида.

У меня нет ничего против них, и я буду использовать их, если iOS хочет, чтобы я это сделал. Мне было просто любопытно, как это произошло.

Я бы интерпретировал зарегистрированное сообщение как нежный, но постоянный подталкивание от Apple к обеспечению контроллера корневого представления. Большинство приложений уже используют контроллеры представлений в любом случае, так что это не большое изменение, но, вероятно, существует множество приложений, которые неправильно устанавливают свойство rootViewController окна на свой контроллер верхнего уровня.

Вы только что подключили свой «вид» к «Владелец файла» ….. просто удалите это соединение и запустите приложение. Посмотрите на свое мнение и посмотрите область инспектора соединений и удалите это соединение, о котором я сказал. Я точно не знаю, что Причина … но у меня была эта проблема, и я очистился. Возможно, вы использовали в нем какое-то табличное представление или некоторые другие представления. Итак, приложение. нужен диспетчер представлений для запуска. Если вы удалите это соединение, тогда он будет запускать то, что вы написали только в коде …

Позвольте мне рассказать вам причину.

В предыдущем издании Window-based Application используется для создания приложений с несколькими просмотрами. Но в Xcode 4.2 оконное приложение больше не существует. Пустое приложение предназначено для создания программы с несколькими видами.

Разница между Window-based Application и Empty Application заключается в том, что у первого есть главное окно MainWindow.xib.

Когда программа запускается, iPhone сначала создает основное окно. Содержимое в MainWindow будет загружено и построено. Но если вам нужно больше функций, например мульти-просмотр, вам все равно придется новый контроллер корневого представления. Контроллер корневого представления может помочь управлять представлениями в вашей программе. В новой редакции Xcode 4.2 ожидается контроллер корневого представления.

В новой редакции в Empty Application отсутствует файл MainWindow.xib. Вместо этого AppDelegate создает окно. И он хочет контроллер корневого представления. Таким образом, лучший способ – создать подкласс UIViewController с XIB для интерфейса для MainWindow. Но в старом издании XIB не нужен.

Так получилось? Без контроллера корневого представления вы не получите ошибку, но вы вряд ли сможете что-то сделать без нее. Вот почему предупреждение всегда появляется.

  • Расширение iOS 8: как использовать xib внутри Cocoa Touch Framework в расширениях?
  • Где я могу получить список всех элементов iOS?
  • Отладка / воспроизведение EXC_BAD_ACCESS сбоя в CA :: release_объектах
  • searchBarTextDidBeginEditing метод делегата, вызываемый два раза
  • Не удалось воспроизвести звук системы после переключения на iOS 5
  • Градиенты на UIView и UILabels на iPhone
  • Поймать исключение из-за неверного ввода пользователя в swift
  • Есть ли способ отправить Memory Warning на устройство iPhone вручную?
  • UIPageViewController: как добавить панель без пейджинга или другие элементы «наложения»?
  • Маска CALayer работает неправильно
  • Вставить текст в UITextField в позиции каретки
  • Interesting Posts

    Ошибка утверждения: у проигрывателя есть неправильное состояние активации (1)

    isAvailableForServiceType всегда возвращает true?

    Как я могу символизировать копию / вставку отчета о сбоях?

    Изображения в UIImageView не отображаются в UITableView, когда круговая маска применяется к ImageView, если не прокрутка

    UITextfield borderColor и ширина на одной стороне текстового поля

    Проблемы с проверкой приложений iOS: использование не публичного API, использование libsqlite

    Как вернуть объект, похожий на std :: pair в Objective-C?

    В чем разница между NSURLConnection, NSURLSession и AFNetworking?

    Как сделать якорь HTML в качестве ссылки для кликов в TTTAttributedLabel?

    Core Audio (iOS 5.1) Свойства Reverb2 не существуют, код ошибки -10877

    ASIHttpRequest игнорирует параметр setValidatesSecureCertificate

    Мостовой литой в ARC и cocos2d

    UILabel над UIProgressView с несколькими цветами

    Мое приложение iOS зависает, но ошибки не появляется

    AVAssetExport устанавливает постоянную частоту кадров

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.