показывать разные контроллеры для одной вкладки в зависимости от некоторого условия

#ios #uiviewcontroller #uitabbarcontroller

#iOS #uiviewcontroller #uitabbarcontroller

Вопрос:

Когда пользователь нажимает на вкладку «Избранное», мне нужно показать:

  1. Введение о том, как добавить избранное, если избранного нет
  2. В противном случае показать список избранных

Поэтому, когда пользователь нажимает на кнопку tab, мне нужно проверить, есть ли какой-либо избранный, а затем решить, какой контроллер использовать, как мне это сделать?

Спасибо!

Ответ №1:

Если введение является статическим, без значительного взаимодействия с пользователем, вы можете поместить введение во вложенное представление, которое находится сверху в представлении, содержащем список избранного. Установите размер его фрейма, чтобы скрыть список избранного. (Это будет отклонено пользователем с помощью приведенного ниже кода.) Назовите это introductionView . Один из способов поместить представление introductionView сверху — добавить это подпредставление последним при создании представления «Список избранного».

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

 if (*some test whether there are already favorites on the list*)
    introductionView.hidden = YES;
else
    introductionView.hidden = NO;
  

Добавьте некоторый код для запуска, когда пользователь нажимает кнопку увольнения

 - (void) dismissHit{
    introductionView.hidden = YES;
}
  

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