Передайте массив в делегатскую функцию XLPagerTabBar, чтобы открыть VC - PullRequest
0 голосов
/ 05 июня 2018

Я работаю с третьей стороной lib XLPagerTabBarStrip.у него есть делегат

override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController]

Теперь я пытаюсь передать свой массив, содержащий имена идентификаторов раскадровки.Я бегу за цикл, чтобы получить имя и передать его в мой оператор возврата.Когда я запускаю приложение, оно показывает только последний элемент массива.Как я могу передать все элементы массива в оператор возврата?Мой код такой,

var child1 = UIViewController()

 override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {

    let viewController = ["LoggedInVC","RegisterationVC"]

    for items in viewController{
        child1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: items)

    }
    return [child1]
}

Когда я запускаю приложение, оно показывает только VC с идентификатором RegisterationVC.Как я могу показать оба сразу?

1 Ответ

0 голосов
/ 05 июня 2018

Ваш var child1 имеет тип UIViewController, и вы переопределяете эту переменную каждый раз, когда выполняется ваш цикл.

Вам нужен массив UIViewController

Попробуйте:

 override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {

    var childs = Array<UIViewController>()

    let viewControllers = ["LoggedInVC","RegisterationVC"]

    for item in viewControllers {
        childs.append(UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: item))
    }

    return childs
}
...