我正在使用第三方库 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 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
}
关于ios - 将Array传给XLPagerTabBar委托(delegate)函数打开VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694327/