//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'。 –