Ios Swift:XLPagerTabStrip:BUTTONBARGETABSTRIPVIEWCONTROLLER:ChildViewController IBOUTS未设置
Xcode->9.4.1,iOS->11.4,XLPagerTabStrip->8.0.1 我想用swift在ios上创建顶部滚动标签(比如android) 我正在使用库中的按钮BarPagerTabStripViewController。代码如下:-Ios Swift:XLPagerTabStrip:BUTTONBARGETABSTRIPVIEWCONTROLLER:ChildViewController IBOUTS未设置,ios,swift,xlpagertabstrip,Ios,Swift,Xlpagertabstrip,Xcode->9.4.1,iOS->11.4,XLPagerTabStrip->8.0.1 我想用swift在ios上创建顶部滚动标签(比如android) 我正在使用库中的按钮BarPagerTabStripViewController。代码如下:- class ParentViewController: ButtonBarPagerTabStripViewController { override func viewControllers(for pagerTabStripCont
class ParentViewController: ButtonBarPagerTabStripViewController {
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
return [ChildOneViewController(), ChildTwoViewController(), ChildThreeViewController()]
}
}
现在一切正常,为三个ChildViewController创建了三个滚动选项卡,可以左右滑动。但当我在故事板中为第一个childviewcontroller创建标签,并在ChildOneViewController类中为该标签创建IBOutlet时未设置此标签,在viewdidload、VIEWDIDISPEND中打印nil。代码如下:-
class ChildOneViewController: UIViewController, IndicatorInfoProvider {
@IBOutlet weak var label: UILabel! // This label i have set from storyboard.
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
return IndicatorInfo(title: "CHILD ONE")
}
override func viewDidLoad() {
super.viewDidLoad()
print(self.label) // This is printing nil to console.
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print(self.label) // This is also printing nil to console.
}
}
如果vcs是在IB中创建的,则不要使用
ChildOneViewController()
但是使用
let ch1 = self.storyboard?.instantiateViewController(withIdentifier: "childOneId") as! ChildOneViewController
给每个人一个标识符,并如上所述加载它现在挣扎了几个小时。谢谢,这是一件显而易见的事情。