我有不同的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