我有不同的NSViewController
s有多個字段。一個有NSDatePicker, 另一個有NSTextField等等。顯示NSViewController的視圖爲NSView的(NSScrollView)子視圖
的想法是顯示這些在NSScrollView當我點擊特定按鈕。
於是我想出了一個解決方案:
我的主要ViewController
類具有可變viewControlers:ViewController
]保存所有自定義ViewController
S(與不同的輸入)。當我點擊按鈕時,我初始化某個ViewController
,然後將其視圖添加到滾動視圖中。
Examle:
let dmyVC = storyBoard.instantiateController(withIdentifier: "DayMonthYearVC") as! DayMonthYearSelectVC
self.viewControlers.append(dmyVC) //add new vc to the array
scrollView.addSubview(dmyVC.view) //add this VC’s view to a scroll view
我加NSButton
觸發「關閉()」功能,每個自定義ViewController
s的輸入。然後在這些ViewController
S IN「關閉」功能,我做的:
self.view.removeFromSuperview()
然而,它不僅能消除從滾動型ViewController
的看法,但ViewController
本身不釋放,它仍然在viewControlers陣列(在mainViewController中的變量)
我正在考慮創建委託,每次按下其中一個視圖上的關閉按鈕時調用委託方法。在這種情況下,我只需要有一個委託陣列(對於每個定製ViewController
)[平行於數組,其中包含所創建的所有那些ViewController
的引用]。
現在,我想,有沒有處理的時候,你想提出另一種觀點認爲內
ViewController
s’的觀點,或者每個人都能在自己喜歡更好的辦法的情況下的一種常見的方式?
不相關的問題,但'scrollView.addSubview(dmyVC.view)'不是如何添加視圖到滾動視圖。 – Willeke
scrollView只是一個NSView,後來成爲ScrollView的documentView(mainScrollView.documentView = scrollView) – Alex