UINavigationController 'меню' - PullRequest
0 голосов
/ 12 мая 2011

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

Мне также нужна кнопка «меню», чтобы пользователи могли быстро переходить между страницами.Это довольно просто, но если пользователи переходят, например, со страницы 1 на 3, а затем используют кнопку «Назад», то она, очевидно, возвращается к 1. Мне нужно, чтобы она всплывала на странице 2.

Каков наилучший способ сделать это?Я пробовал popToViewContorller: animated: но получаю сообщение об ошибке, сообщающее, что виртуальный канал, на который я пытаюсь открыть, не существует.

Ответы [ 3 ]

0 голосов
/ 12 мая 2011

Может быть, то, что вы хотите, вовсе не UINavigationController?Он предназначен для управления стеком контроллеров представлений, но вам нужен список контроллеров.

Вы можете создать свой собственный подкласс UIViewController, который управляет массивом контроллеров подчиненного представления, заполняя UIScrollView с представлениями из управляемых контроллеров представления.

Таким образом UIScrollView может:

  • Обрабатывать подкачку для вас
  • Назад, вперед и даже прыжокЭто просто вопрос установки contentOffset.

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

0 голосов
/ 12 мая 2011

Ладно, то, что вам нужно, чтобы нажать на каждую страницу, чтобы перейти на нужную страницу, означает

. Предположим, вы хотите перейти на 4 страницы с 1 страницы, а затем задать целочисленную переменную (сделайте ее свойством в делегате приложения.класс) по вашему мнению номер.затем нажмите следующий вид в соответствии с вашим списком, затем проверьте нужную вам страницу (проверив номер страницы, сохраняя в свойстве и номер текущей страницы).если да, то остается там, в противном случае нажмите другую. (Это будет сделано viewDidLoad каждой страницы).

Помните, когда вы получили желаемую страницу, затем установите для этой переменной bool значение NO;

Для управления страницейnumber добавьте еще одну вещь в plist, это номер страницы с этим и затем сделайте свою логику.

0 голосов
/ 12 мая 2011

Я не думаю, что вы можете сделать это с помощью poppingViewControcollers. Это означает, что в вашем массиве navigationController.viewControllers у вас будет просто page1 с нулевым индексом и page3 с 1 индексом. viewController, что он загружается так же, как в случае, если его страница 1 загружена до page3.

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