在不同的故事板之间传递消息和/或对象swift

时间:2015-06-29 12:54:48

标签: ios swift

我有两个故事板,需要传递消息和对象。我知道如何在同一个故事板中使用.xib文件,但不是两个不同的故事板。

我的代码是:

var storyboard = UIStoryboard(name: "RecibosStoryboard", bundle: nil)
        var controller = storyboard.instantiateViewControllerWithIdentifier("RecibosStoryboard") as! UINavigationController

    self.presentViewController(controller, animated: true, completion: nil).

    // If i do: var controller = storyboard.instantiateViewControllerWithIdentifier("RecibosStoryboard") as! = TableRecibosViewController -> fails ->cannot convert TablaRecibosViewController to UINavigationController

// If i do:

/* var controller = storyboard.instantiateViewControllerWithIdentifier("RecibosStoryboard") as! UINavigationController


 let vartest: TablaRecibosTableViewController = TablaTablaRecibosTableViewController() 

prueba.inicioPrueba(str, strPrueba2: str2) -> two objects are nill

self.presentViewController(controller, animated: true, completion: nil).

 Two objects are nill*/

我的第二个故事板是“RecibosStoryboard”,只有1个视图,其中的类是TablaRecibosViewController,并且有一个构造方法:

class TablaRecibosTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


    @IBOutlet var tablaRecibos: UITableView!
    var pruebaMansajes: String?
    var pruebaMansajes2: String?

    var arrayOfObjectsCellRecibos: [ObjectTableRecibos] = [ObjectTableRecibos] ()

    override func viewDidLoad() {
        super.viewDidLoad()

        tablaRecibos.dataSource = self
        tablaRecibos.delegate = self

        println("Pruebas satisfactorias1 \(pruebaMansajes) \(pruebaMansajes2)")
    }

    func inicioPrueba(strprueba1:String, strPrueba2:String){
    pruebaMansajes = strprueba1
    pruebaMansajes2 = strPrueba2
    }

当我执行应用程序或崩溃或打印两个对象= nil

我找不到办法。非常感谢。

1 个答案:

答案 0 :(得分:0)

问题是以下"无法将TablaRecibosViewController转换为UINavigationController"。您的TablaRecibosViewController嵌入在UINavigationController中。请尝试以下方法:

if let recibosViewController = (storyboard.instantiateViewControllerWithIdentifier("RecibosStoryboard") as? UINavigationController).viewControllers.first as? TablaRecibosTableViewController {
    recibosViewController.pruebaMensajes = "Hola mundo"

}

您正在创建一个与Storyboard无关的TablaTablaRecibosTableViewController()的新实例,因此表视图为nil并且崩溃了。