将 Array 传递给 XLPagerTabBar 委托函数以打开 VC

Pass Array to the XLPagerTabBar delegate function to open VC

我正在使用第三方库 XLPagerTabBarStrip。它有代表

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

现在我正在尝试传递包含故事板标识符名称的数组。我正在使用 运行 循环获取名称,然后将其传递给我的 return 语句。当我 运行 应用程序时,它只显示数组的最后一项。如何将数组的所有项传递给 return 语句?我的代码是这样的,

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。如何同时显示两者?

您的 var child1UIViewController 类型,您每次执行循环时都会覆盖此变量。

你需要的是 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
}