自定义NSViewController容器

时间:2016-02-14 15:35:00

标签: cocoa nsviewcontroller

我正在尝试创建一个自定义容器视图控制器,它将在子视图控制器的视图之间进行转换。

我的想法是将初始子视图(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永远不会被调用。

如何设置父控制器的初始呈现视图控制器?

0 个答案:

没有答案