当我的ViewController嵌入UINavigationController时,如何设置值?

时间:2015-04-15 03:55:46

标签: swift uinavigationcontroller segue viewcontroller

我有两个视图控制器,它们通过segues和 prepareForSegue 方法来回发送值。这对我来说一直很好,直到我决定将我的ViewController嵌入到导航控制器中。

如果你看下面的方法,你会发现问题是我的 destinationViewController 不再是ViewController ...它是我新创建的UINavigationController。

TimeViewController.swift (辅助控制器)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        var dest = segue.destinationViewController as! ViewController
        var min = selectedMinute * 60
        output = min + selectedSecond

        dest.returnedLabel = recievedString

        if cancelled == true {
            dest.returnedValue = 0
        } else {
            dest.returnedValue = output
        }

    }

一旦我的ViewController嵌入UINavigationController,我就会收到此错误:

Could not cast value of type 'UINavigationController' (0x1088ff698) to 'deleteCoreData.ViewController' (0x106a1f9b0).

因此,如果我将destinationViewController转换为UINavigationController,我理所当然地失去对以前变量的访问权限。这些变量是我在控制器之间保存数据的方式。

所以我的问题是:

当我的ViewController嵌入UINavigationController时,如何设置值?

更新:这就是我的故事板的样子......

enter image description here

1 个答案:

答案 0 :(得分:3)

将其转换为ViewController对我来说很好。

var dest = segue.destinationViewController as! ViewController

你的segue连接应该是:

enter image description here