【问题标题】:Pass Array to the XLPagerTabBar delegate function to open VC将 Array 传递给 XLPagerTabBar 委托函数以打开 VC
【发布时间】:2018-06-05 07:21:10
【问题描述】:

我正在使用第三方库 XLPagerTabBarStrip。它有委托

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

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

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

【问题讨论】:

    标签: ios swift xlpagertabstrip


    【解决方案1】:

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

    【讨论】:

    • 如果我有动态数组,可以用这种方法吗? @Teetz
    • @raheem 你对动态数组的具体含义是什么? (如果您想提供更多信息,可以编辑您的问题)
    • 不,我只是想问如果我有动态数组,那么这个方法可以写吗? @Teetz
    • 只需根据您想要实现的目标填写您需要的标识符数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2018-02-18
    相关资源
    最近更新 更多