我有一个视图控制器,它有一个带有两个按钮的UISegmentControl . 我加载了这个View,当SegmentValue发生了变化时,我会在视图中添加一个视图控制器 .
这是MainViewController
在课程中我定义了控制器
var tabNavigation: UISegmentedControl!
let viewController1:ViewController1 = ViewController1()
let viewController2:ViewController2 = ViewController2()
//创建段控件
self.tabNavigation = UISegmentedControl(items: ["v1", "v2"])
self.tabNavigation.selectedSegmentIndex = 0
self.tabNavigation.frame = CGRectMake(60, 250, 130, 25)
self.tabNavigation.addTarget(self, action: "segmentedValueChanged", forControlEvents: .ValueChanged)
self.navigationItem.titleView = self.tabNavigation
// set first view
self.addChildViewController(viewController1)
self.view.addSubview(viewController1.view)
// Segement发生了变化
func segmentedValueChanged() {
if (self.tabNavigation.selectedSegmentIndex == 0) {
self.addChildViewController(viewController1)
self.view.addSubview(viewController1.view)
} else {
self.addChildViewController(viewController2)
self.view.addSubview(viewController2.view)
在故事板中,我有一个从MainViewController到ViewController3的segue
现在在ViewController1中,我正在尝试从ViewController1到ViewController3创建一个segue(应该是以前的导航控制器的一部分,然后用后退按钮滑动) . 但由于ViewController1完全来自Code,因此不存在segue .
我的segue代码在下面,但显然失败了,因为它是MainViewController到ViewController3的segue标识符
performSegueWithIdentifier("loadVC3", sender: nil)
2 回答
您正在寻找的是以编程方式初始化
viewController
然后显示它,因为您首先需要设置一个唯一的Storyboard ID
然后初始化它 . 像这样:您无法以编程方式创建segues . 看看这个答案:
Creating a segue programmatically
我可能会使用XIB来设计您以编程方式创建的所有视图控制器 .