我是Swift和OS X編程的新手。如何在另一個視圖控制器中控制實例
我正在用兩個視圖控制器創建一個桌面應用程序,它們位於分割視圖控制器中。我如何訪問另一個控制器中的實例並更改其屬性?
一個例子:
我們有一個繪圖應用程序,一個觀點是帆布,另一種是工具。工具視圖中有一個「清除」按鈕,點擊此按鈕時如何清除畫布?
我是Swift和OS X編程的新手。如何在另一個視圖控制器中控制實例
我正在用兩個視圖控制器創建一個桌面應用程序,它們位於分割視圖控制器中。我如何訪問另一個控制器中的實例並更改其屬性?
一個例子:
我們有一個繪圖應用程序,一個觀點是帆布,另一種是工具。工具視圖中有一個「清除」按鈕,點擊此按鈕時如何清除畫布?
您可以使用代表和協議! 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
}
}
您可以嘗試在你的代碼中使用Singleton模式。當您創建視圖控制器時,請將var從類中移出:
var fooViewController = FooViewController(...)
class FooViewController{
...
}
然後,您可以在項目的任何位置使用fooViewController。
如果你與故事板的工作,你可以嘗試一些像這樣的代碼:
var story = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
var view:MainTabViewController = story.instantiateViewControllerWithIdentifier("MainTab") as MainTabViewController
希望這能有所幫助。