UIViewController управление рабочим процессом без модального, табуляции и навигации контроллера? - PullRequest
0 голосов
/ 05 августа 2011

Здравствуйте, стекировщики потока стека!

Пожалуйста, рассмотрите рабочий процесс пользовательского интерфейса в iOS: один основной view-контроллер и несколько других контроллеров представления оттуда:

mainviewcontroller

+ - viewcontroller 1

+ - viewcontroller 2

+ - viewcontroller 3

и т. Д.

Я хотел бы иметь возможность переключаться и переключаться с основного контроллера вида наодин из других контроллеров представления И также переключают МЕЖДУ другими контроллерами представления.Все паттерны iOS, о которых я знаю, кажутся проблематичными для этого варианта использования:

  • UITabbarController был бы правильным выбором, если бы я мог убрать панель вкладок
    - она ​​не подходит длядизайн.Мне удалось скрыть
    панель, но экраны контроллера не меняют свой размер, и
    все выглядит хакерским.

  • UINavigationController разработан для последовательного порядка
    экранов, а также вставная анимация не вписывается в дизайн

  • Модальные контроллеры просмотра также предназначены для последовательного заказа, кроме того, мне нужно отслеживать, сколько контроллеров просмотранаходятся в стеке.Кроме того, существует проблема синхронизации с отключением контроллера представления и немедленным представлением следующего.

  • Я мог бы просто переключать представления в контроллере представления, я полагаю, но у контроллеров представления есть все виды подзадачсделать.Я бы закончил с одним огромным viewcontroller и множеством методов, встроенных для разных представлений.

Мой вопрос: Каков наилучший подход к управлению группой контроллеров представления в любом порядке, в котором я хотел бы?

Спасибо за любыепомощь!

Ответы [ 2 ]

0 голосов
/ 12 сентября 2011

Хорошо, мое решение не идеально, но, похоже, работает: Создайте UINavigationController. Используйте viewcontrollers: метод, чтобы добавить стек viewcontrollers по своему вкусу. При переключении между контроллерами представления перестройте стек и подключите снова.

Проблема: в вашем распоряжении только анимация навигационных контроллеров (вставьте / выведите). Но вы можете отключить анимацию navigationcontrollers, получить следующее представление viewcontrollers, анимировать его с помощью анимации UIView, а затем переключиться на сам контроллер представления с помощью построения стека, как описано выше.

Действительно далеко от совершенства, но работает.

0 голосов
/ 07 августа 2011

У меня будет основной UIViewController. Это один будет иметь ссылки на другие три UIViewControllers. Затем вы можете сделать что-то подобное изнутри вашего основного UIViewController:

[self.view addSubview:view1.view];

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

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

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