Лучшая практика для отображения нескольких представлений в iOS - PullRequest
1 голос
/ 09 декабря 2011

Я пытаюсь создать образовательное приложение, которое будет иметь примерно 3-5 совершенно разных страниц / экранов. Каждый экран содержит одну головоломку, и каждая головоломка не зависит от всех других головоломок (экранов). Как только загадка на текущем экране будет решена, я бы хотел перейти на новый (случайно выбранный) экран. Однако я бы разрешил показывать одну и ту же головоломку несколько раз, если бы она отображалась до того, как ее необходимо будет сбросить.

Я пытался сделать это с помощью segues, но, похоже, для этого требуется UINavigationController, который не является тем опытом, который я хочу представить (поскольку для него требуется предварительно определенная иерархия экранов).

Я полагаю, что лучший способ сделать это, чтобы каждый экран был полностью отдельным UIViewControllers, правильно? Я просто не знаю, как организовать навигацию / рендеринг между ними.

Буду признателен за все ваши лучшие практики. Спасибо!

Ответы [ 4 ]

2 голосов
/ 09 декабря 2011

Ну вот возможный вариант:

Прежде всего, если вы хотите, чтобы меню за пределами этих головоломок имело это в качестве корневого контроллера в UINavigationController.

Затем создайтеКонтроллер запуска и добавьте его в контроллер навигации, когда это необходимо.Это будет обычный UIViewController, за исключением того, что в этом контроллере в методе viewWillAppear он выбирает случайное число 0-5 и запускает его через коммутатор и в зависимости от числа нажимает один из 5 ваших контроллеров представления.Затем, когда загадка будет завершена, вызовите popViewController на навигационном контроллере.Теперь, когда он возвращается назад, viewWillAppear будет вызван снова и случайным образом нажмет другую.Затем, если вы хотите вернуться в главное меню в любое время, просто наберите popToRootViewControllerAnimated.Это должно делать то, что вам нужно.И чтобы сделать так, чтобы он не анимировался дважды, используйте только анимацию push или только всплывающее окно.

0 голосов
/ 09 декабря 2011

Ну, я вчера тестировал приложение для игры на другом музыкальном инструменте. Я использую UIView для обработки вида 3 моих инструментов. Логика проста. Я установил навигацию на UIButton и добавил subview для каждого инструмента. Когда пользователь коснется кнопки, выбранный вид будет добавлен вперед, а последний вид будет фоновым или временным на фоне.

Надеюсь, это поможет вам.

0 голосов
/ 09 декабря 2011

Я знаю, что использование cocos2d - это отличный способ создания игр, и он позволяет создавать разные «сцены», в которых вещи независимы друг от друга или могут общаться, если вы выберете. Также с cocos2d есть «режиссер», который обрабатывает все сцены и может выдвигать сцены за вас. Если вам интересно проверить: www.cocos2d-iphone.org

Надеюсь, это поможет:)

0 голосов
/ 09 декабря 2011

Вместо того, чтобы иметь разные контроллеры представления, вы можете иметь один контроллер.Вы можете перезагрузить вид головоломки после завершения первого.Логика, которую вы применили для первой головоломки, будет примерно такой же, как и у других.Так что теперь только вам нужно обрабатывать разные состояния головоломки.Например: у меня первый взгляд с матрицей головоломки 3х3, следующий будет матрица 4х4, а следующим будет матрица 5х5.Таким образом, эти состояния должны обрабатываться с помощью кода в контроллере представления.

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