iPad: двухэтапный метод реализации - PullRequest
3 голосов
/ 19 апреля 2011

вот моя проблема, я надеюсь, что кто-то может мне помочь.

Мое приложение для iPad сделано так: у меня есть несколько viewController-ов, добавленных в виде вкладок в tabBarController, добавленных в окно моего app-делегата. В каждом из этих viewController'ов я получил два навигационных контроллера с одним viewController.

  • AppDelegate
    • TabBarController
      • ViewController
        • navigationController
          • ViewController
        • navigationController
          • ViewController
      • ViewController
        • navigationController
          • ViewController
        • navigationController
          • ViewController

В симуляторе все работает нормально, но когда я запускаю его на устройстве, я получаю это предупреждение:

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.

Это происходит только тогда, когда я запускаю его на устройстве в альбомном режиме. Первый navigationController вида по умолчанию, показанного tabBarController, занимает всю ширину экрана (здесь не важно, но это объясняет, что это предупреждение сводит мой макет с ума). На портрете ничего не прослеживается в консоли.

Я прочитал много вещей об этом сообщении, но не могу найти никакого решения, чтобы оно исчезло. Я уверен, что это история mustAutoRotate или что-то вроде этого. Я также заметил, что если я удаляю tabBarController и просто добавляю свой первый viewController в окно, сообщение не отображается.

Очень странно ... помогите пожалуйста:)

1 Ответ

2 голосов
/ 07 июня 2011

Я думаю, вы должны полагаться на стандарт UISplitViewController, доступный под iPad.Этот контроллер используется в приложении «Настройки» и других приложениях.

Если вам не нравится такой инструмент, вы можете взглянуть на плагин APSplitViewController , разработанный slatvick.на GitHub.Надеюсь, это может решить многие ваши проблемы.

Редактировать

Погуглив эту проблему, я обнаружил, что это предупреждение появляется при создании неверной иерархии контроллеров представления.В этом случае вы помещаете два контроллера навигации в контроллер представления, даже если контроллер представления не должен содержать другой контроллер навигации.Возможно, может быть проблема, связанная с тем, как вы отправляете методы родительского контроллера вида, например viewDidLoad или viewWillLoad: и т. Д. Вы должны попытаться понять, правильно ли вы передаете все эти вызовы родительскому контроллеру представления из внутренней навигацииконтроллеры.

...