2014-09-24 144 views
0

我是Swift和OS X編程的新手。如何在另一個視圖控制器中控制實例

我正在用兩個視圖控制器創建一個桌面應用程序,它們位於分割視圖控制器中。我如何訪問另一個控制器中的實例並更改其屬性?

一個例子:

我們有一個繪圖應用程序,一個觀點是帆布,另一種是工具。工具視圖中有一個「清除」按鈕,點擊此按鈕時如何清除畫布?

回答

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

您可以嘗試在你的代碼中使用Singleton模式。當您創建視圖控制器時,請將var從類中移出:

var fooViewController = FooViewController(...) 

class FooViewController{ 
... 
} 

然後,您可以在項目的任何位置使用fooViewController。

如果你與故事板的工作,你可以嘗試一些像這樣的代碼:

var story = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
var view:MainTabViewController = story.instantiateViewControllerWithIdentifier("MainTab") as MainTabViewController 

希望這能有所幫助。

相關問題