gpt4 book ai didi

macos - 将连续色井数据传递到第二个 View Controller

转载 作者:行者123 更新时间:2023-11-30 14:18:14 27 4
gpt4 key购买 nike

我有以下情况:

两个 ViewController,每个 ViewController 包含一个框,该框要着色为从 ViewController 中的颜色池中选取的颜色色井设置为连续,以便立即看到反射(reflect)的变化我正在寻找一种方法将颜色井值连续传递到 SecondViewController 以及回调方法,该方法将为 SecondViewController 中的框着色。

我发现prepareForSegue方法通常用于在 View Controller 之间传递数据,但是这只在转换期间发生一次,而不是连续发生。

有人能指出我正确的方向吗?在谷歌上搜索了几个小时,但我真的被这个问题困扰了。

谢谢。

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
}
}

最佳答案

prepareForSegue 方法是在两个 View Controller 之间创建链接的机会。源 View Controller 将自己设置为目标 View Controller 的委托(delegate)是很常见的。源 View Controller 还可以保存对目标 View Controller 的引用以供将来引用。

如果您使用类似的方法定义协议(protocol)

func colorValueHasChanged(newColor: NSColor)

然后,您可以在颜色池的 IBAction 中使用它,将有关颜色池变化的信息从一个 View Controller 传递到另一个 View Controller 。

关于macos - 将连续色井数据传递到第二个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com