使用代码执行Segue会显示黑屏

时间:2015-08-30 19:31:14

标签: ios swift2

我正在尝试使用代码对另一个屏幕做一个segue,但它向我展示了使用Xcode 7 beta 6的黑屏。 这是我的第一个视图控制器文件代码

//  ViewController.swift
//  Segue through programming
//

import UIKit

class ViewController: UIViewController{

    @IBAction func buttonPressed(sender: AnyObject) {
        presentViewController(secondController(), animated: true) { () -> Void in

        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

1 个答案:

答案 0 :(得分:3)

这仅在secondController以编程方式创建其视图时才有效。如果您想使用故事板场景(更常见),您可以执行以下操作:

@IBAction func buttonPressed(sender: AnyObject) {
    let controller = storyboard?.instantiateViewControllerWithIdentifier("foo")
    presentViewController(controller!, animated: true, completion: nil)
}

这显然假设您已为目标场景指定了故事板标识符。

enter image description here

或者,您可以通过控制从第一个场景顶部的视图控制器图标拖动到第二个场景,在IB中的两个场景之间创建一个segue:

enter image description here

然后给那个segue自己的故事板id:

enter image description here

然后您可以通过编程方式调用segue:

@IBAction func buttonPressed(sender: AnyObject) {
    performSegueWithIdentifier("bar", sender: self)
}