2017-01-26 5 views
0

Я уже несколько дней застрял в этой проблеме, и любая помощь будет оценена по достоинству.Как разрешить элемент панели вкладок иметь несколько контроллеров просмотра

У меня есть UITabBarController, который имеет четыре TabBarItem s.

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

Например, если пользователь не вошел в систему, я хочу, чтобы отобразить другой экран входа в систему в зависимости от TabBarItem - каждый логин будет выглядеть по-другому. Когда пользователь вошел в систему, я хочу отобразить нормальный контент, который вы выбрали. TabBarItem

Я думал о наличии нескольких ViewController s для каждого элемента панели вкладок. Когда пользователь выбирает TabBarItem, определите, зарегистрирован ли пользователь, а затем отобразите правильный `` `ViewController. Я не уверен, что это правильный подход и как добиться такого поведения.

Обновление: Это решение, которое я придумал, но задавался вопросом, что все думают - правильно ли он подходит. Это то, что выглядит мой Раскадровка как: enter image description here

Идея заключается в том, когда пользователь вошел в систему я бы показать контроллеры просматривать логин и когда пользователь не вошел в систему я бы показать вырубленные из контроллеров представления.

Я бы использовал self.present(...) для изменения и от входа и выхода из системы ViewController s.

+0

Вы можете добавить свой код в настоящее время – muescha

ответ

1

Вы можете изменить отображаемые вкладки с помощью setViewControllers. Просто установите массив требуемых viewControllers, когда пользователь входит в систему или выходит из системы.

class TabBarController: UITabBarController { 
    func onMyLogin() { 
     setViewControllers(myNormalViewControllers, animated: false) 
    } 
    func onMyLogout() { 
     setViewControllers(myUnidentifiedViewControllers, animated: false) 
    } 
} 
+0

Благодарим за предложение. Я попробую это сегодня. Я также обновил свой вопрос с возможным решением, о котором я думал. Любопытно посмотреть, что ваши мысли – breaktop

+0

@breaktop ваше решение работает тоже. Это вопрос вкуса о том, как вы хотите оживить переход между двумя государствами; и в данном случае я предпочитаю мое решение одного TabBarController с собственным 'animated: true'. –

+0

КАК вы даете ответ в объективе c –

Смежные вопросы