Как добавить контроллер табличного представления в контроллер панели вкладок в Swift - PullRequest
0 голосов
/ 12 мая 2018

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

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

self.tabBarController?.viewControllers?.remove(at: 4)

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

self.tabBarController?.viewControllers?.insert(AdminProductUploaderTableVC(), at: 4)

только добавляет пустой пробел. AdminProductUploaderTableVC есть контроллер навигации на раскадровке.

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

Спасибо

1 Ответ

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

Что вы делаете не так?

self.tabBarController?.viewControllers?.insert(AdminProductUploaderTableVC(), at: 4)

создает объект, подобный этому AdminProductUploaderTableVC() вместо загрузки из раскадровки.

Сначала перейдите к раскадровке и добавьте идентификатор раскадровки в AdminProductUploaderTableVC

Перейдите на AdminProductUploaderTableVC и добавьте следующий метод

class func viewController() -> AdminProductUploaderTableVC {
    return UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "AdminProductUploaderTableVC") as! AdminProductUploaderTableVC
}

Теперь замените вашу строку на

self.tabBarController?.viewControllers?.insert(UINavigationController(rootViewController:AdminProductUploaderTableVC.viewController()), at: 4)

Надеюсь, это полезно

...