2015-06-15 19 views
0

我有以下的情况:通行证连续colorwell数据到第二视图控制器

2 ViewControllers各自含有一个框是被着色的彩色从颜色中的ViewController 拾取孔中的colorwell被设定为连续为了看到立即反映的变化 我正在寻找一种方法来连续地将颜色值传递给SecondViewController并且传递给将在SecondViewController中着色一个方框的回调方法。

我发现prepareForSegue方法通常用于在视图控制器之间传递数据,但是这只会在转换期间发生,而不会持续发生。

有人能指出我在正确的方向吗?谷歌搜索几个小时,但我真的坚持这一点。

谢谢。

import Cocoa 

class ViewController: NSViewController { 

    @IBOutlet weak var box: NSBox! 

    @IBOutlet weak var well: NSColorWell! 

    @IBAction func well(sender: AnyObject) { 
     box.fillColor = well.color 
    } 

    override func prepareForSegue(segue: NSStoryboardSegue, sender: AnyObject?) { 
     let second = segue.destinationController as! SecondViewController 
     second.representedObject = well.color 
    } 
} 

import Cocoa 

class SecondViewController: NSViewController { 

    @IBOutlet weak var box: NSBox! 

    override func viewWillAppear() { 
     // Note that box.fillColor requires box type to be custom 
     box.fillColor = self.representedObject as! NSColor 
    } 
} 

回答

0

prepareForSegue方法是在两个视图控制器之间创建链接的机会。源视图控制器将其自身设置为目标视图控制器的代表很常见。源视图控制器也可以保存对目标视图控制器的引用以供将来参考。

如果你定义一个协议与像

FUNC方法colorValueHasChanged(newColor:NSColor)

然后你可以使用它在IBAction为你的颜色也从通过关于颜色的变化以及信息一个视图控制器到另一个。

+0

谢谢邓肯。这是我需要的方向:-) – Frans

+0

没问题。欢迎来到Stack Overflow! –

相关问题