如何在Swift iOS开发中从一个视图控制器到另一个容器视图控制器获取分段控制索引?

时间:2018-06-19 12:26:50

标签: ios iphone swift

我在命名为仪表板控制器的视图控制器之一中使用三索引分段控件,并将segue传递到容器视图以在仪表板控制器中加载三个不同的视图控制器,但所选索引仍显示分段控件但容器视图将默认的第一个视图控制器加载到仪表板控制器下。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这就是我的方法。

  • 不要将分段控件直接链接到segue,而链接到仪表板控制器中的动作
  • 从仪表板控制器中交换视图。

func switchViews(_ sender: Any?) {
    // vcSelector is an instance variable, or you can use the sender
    let subVCIndex = vcSelector?.selectedSegmentIndex
    // also an instance variable
    currentViewController = nil
    switch subVCIndex {
        case 0:
            currentViewController = self.storyboard!.instantiateViewController(withIdentifier: "SubControllerA")
            // set up for case 0
        case 1:
            currentViewController = self.storyboard!.instantiateViewController(withIdentifier: "SubControllerB")
            // set up for case 1
        // ...
        default:
            // should never happen
            NSLog("*** Invalid view mode! ***")
            return // bail out
    }

    // add the new view controller
    self.addChildViewController(currentViewController!)

    // take out all the old subviews
    for subview in self.containerView!.subviews {
        subview.removeFromSuperview()
    }

    // install the new subVC's view
    self.containerView?.addSubview(currentViewController!.view)
    currentViewController!.view.frame = self.containerView!.bounds
}