创建视图控制器的实例并以编程方式对其进行segue

时间:2016-08-04 18:12:01

标签: ios swift segue presentviewcontroller

我的故事板中有两个视图控制器:view1view2

view1中,我使用故事板从其tableview到view2制作了一个segue。

但现在在view2中,我已经以编程方式创建了一个按钮,它应该转到另一个实例化的view2

单击该按钮时,我创建了一个执行函数:

func buttonPressed(sender: UIButton){
  //TODO:- GET NEXT PAGE
  self.performSegueWithIdentifier("anotherView2", sender: sender)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if(segue.identifier == "anotherView2"){
    let anotherView2Controller = segue.destinationViewController as! View2
    ...
    ...
  }
}

当然它不起作用,因为没有名为anotherView2的segue标识符。所以我想以某种方式制作它,但我真的找不到管理它的好方法。

无论如何以编程方式创建segue?我试图从故事板中创建segue,但由于按钮是以编程方式创建的,因此我无法将view2转换为view2

1 个答案:

答案 0 :(得分:2)

您想使用presentViewController代替performSegue

// however you want to initialize the new vc
let vc2 : View2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("view2.id") as! View2

初始化vc的另一种方法是执行此操作:

let vc2 = View2()

然后设置数据并显示:

vc2.index = index // whatever you want to pass
self.presentViewController(vc2, animated: true, completion: nil)

否则你可以在故事板中创建一个新的视图控制器,但我不推荐它。