//Index=0 //contains buttonToSwitchTab to pop to TabOneVC
TabZeroNavCntrlr ----TabZeroVC --- TabChangeVC
//segmntCntrl /
NavCntlr--ContainerView---
\ //Index=1
TabOneNavCntrlr ---- TabOneVC
我有一个NavController
已连接ContainerView
。在containerView里面有一个segmentControl
。 containerView有两个导航控制器连接到它,每个导致他们自己的子控制器:TabZeroVC
和TabOneVC
。最初显示的第一个视图是TabZeroVC
(selectedSegmentIndex = 0)。里面有一个按钮,导致TabChangeVC
里面有一个buttonToSwitchTab
。按下那个按钮我想要pop
到TabOneVC
。Swift iOS - 如何使用NavigationController弹出到不同的SegmentControl索引
我用我的导航控制器使开关,但上线tabOneVC.segmentedControl.selectedSegmentIndex = 1
下方尝试这种代码,我得到一个崩溃:意外发现零而展开的可选值
我上放一个破发点它和containerVC被初始化,但它的3个属性segmentedControl
,tabZeroVC
和tabOneVC
都是零。由于segmentedControl
是无这就是发生崩溃的地方。
class TabChangeVC: UIViewController{
@IBAction func buttonToSwitchTab(sender: UIButton){
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let containerVC = mainStoryboard.instantiateViewControllerWithIdentifier("ContainerViewController") as! ContainerViewController
containerVC.segmentedControl.selectedSegmentIndex = 1 //crash happens here
self.navigationController?.popToViewController(containerVC, animated: true)
}
}
ContainerView:
class ContainerViewController: UIViewController{
@IBOutlet weak var segmentedControl: UISegmentedControl!
@IBOutlet weak var tabZeroVC: UIView!
@IBOutlet weak var tabOneVC: UIView!
...
}
TabOneVC
是selectedSegmentIndex = 1
我的问题是我怎么弹出来TabOneVC
从TabChangeVC
,更重要的原因是containerVC的segmentedControl来了为零?
据我你首先需要在流行'的所有元素NavCntrl0'然后推入'navCntrl1'。 –