ios - 将Array传给XLPagerTabBar委托(delegate)函数打开VC

标签 ios swift xlpagertabstrip

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

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

现在我正在尝试传递包含 Storyboard 标识符名称的数组。我正在运行 for 循环以获取名称,然后将其传递给我的 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]
}

当我运行该应用程序时,它只显示标识符为 RegisterationVC 的 vc。如何同时显示两者?

最佳答案

您的 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
}

关于ios - 将Array传给XLPagerTabBar委托(delegate)函数打开VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694327/

相关文章:

ios - Swift 错误消息 : Initializer for conditional binding must have Optional type, 而不是 '[CLBeacon]'

asp.net - 将现有的 .net 功能扩展到 iPad

ios - 使用推送通知快速打开特定 View

swift - 如何禁用向上滑动和向下滑动

ios - LLSimpleCamera 闪光灯按钮标签旋转文本给出 "..."

ios - Facebook SDK 使用 Graph API 1.0 版

ios - WKWebView:没有 Javascript 的 scalesPageToFit 行为

swift - 划分 NumberFormatter .currency 以将价格转换为季度价格

ios - XLPagerTabStrip - 如何添加 UISearchController

ios - XLPagerTabStrip 库中单 View Controller 中的多个 ButtonBarView