如何在另一个视图控制器中控制实例

时间:2014-09-24 04:02:58

标签: macos swift xcode6

我是Swift和OS X编程的新手。

我正在创建一个带有两个视图控制器的桌面应用程序,它们位于拆分视图控制器中。如何访问另一个控制器中的实例并更改其属性?

一个例子:

我们有一个绘图应用程序,一个是canvas,另一个是工具。有一个明确的'工具视图中的按钮,单击此按钮时如何设置画布清晰?

2 个答案:

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