我是Swift和OS X编程的新手。
我正在创建一个带有两个视图控制器的桌面应用程序,它们位于拆分视图控制器中。如何访问另一个控制器中的实例并更改其属性?
一个例子:
我们有一个绘图应用程序,一个是canvas,另一个是工具。有一个明确的'工具视图中的按钮,单击此按钮时如何设置画布清晰?
答案 0 :(得分:1)
您可以尝试在代码中使用单例模式。创建视图控制器时,将var放在类之外,如:
var fooViewController = FooViewController(...)
class FooViewController{
...
}
然后你可以在项目的任何地方使用fooViewController。
如果你正在使用故事板,你可以试试这样的代码:
var story = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
var view:MainTabViewController = story.instantiateViewControllerWithIdentifier("MainTab") as MainTabViewController
希望这会有所帮助。
答案 1 :(得分:0)
您可以使用代理和协议! Link to Official Apple Documentation
下面是一个简单的例子:
protocol toolsProtocol {
func pressedClear()
}
var delegate : toolsProtocol
在画布类中
class Canvas: UIViewController, toolsProtocol {
Tools.delegate = self
func pressedClear() {
// Insert stuff happens here
}
}