我正在尝试创建一个自定义容器视图控制器,它将在子视图控制器的视图之间进行转换。
我的想法是将初始子视图(childviewcontroller)添加到父控制器,然后使用
- transitionFromViewController:toViewController:选择:completionHandler
在视图之间转换,所以我目前有一个看起来像这样的方法
func selectTabAtIndex(index: Int) {
assert(index >= 0 && index < childViewControllers.count, "index out of range")
for (i, button) in buttons.enumerate() {
button.state = (index == i) ? NSOnState : NSOffState
}
let viewController = childViewControllers[index]
if let presentedViewController = presentedViewControllers?.last {
transitionFromViewController(presentedViewController, toViewController: viewController, options: .Crossfade, completionHandler: {log.info("Completed Transition")})
} else {
self.view.addSubview(viewController.view)
viewController.view.snp_makeConstraints { (make) -> Void in
make.left.equalTo(stackView.snp_right)
make.top.equalTo(self.view)
make.right.equalTo(self.view)
make.bottom.equalTo(self.view)
}
}
}
但是,尽管先前已将子视图控制器视图添加为子视图,但presentViewControllers数组始终为空。因此,transitionFromViewController永远不会被调用。
如何设置父控制器的初始呈现视图控制器?