Swift 添加子视图添加多个子视图
我已经创建了一个底部工作表,并在底部工作表中添加了一个按钮来调用另一个子视图。调用第二个子视图的代码是:Swift 添加子视图添加多个子视图,swift,parent-child,subview,Swift,Parent Child,Subview,我已经创建了一个底部工作表,并在底部工作表中添加了一个按钮来调用另一个子视图。调用第二个子视图的代码是: func addSettings() { let settingsVC = SettingsViewController() if !settingsVC.view.isDescendant(of: self.view) { self.addChildViewController(settingsVC) self.view.addSubv
func addSettings() {
let settingsVC = SettingsViewController()
if !settingsVC.view.isDescendant(of: self.view) {
self.addChildViewController(settingsVC)
self.view.addSubview(settingsVC.view)
settingsVC.didMove(toParentViewController: self)
// 3- Adjust bottomSheet frame and initial position.
let height = view.frame.height
let width = view.frame.width
settingsVC.view.frame = CGRect(x:0, y:self.view.frame.maxY, width: width, height: height)
} else {
// 2- Add bottomSheetVC as a child view
settingsVC.view.removeFromSuperview()
}
}
无论何时调用此函数,它都会添加另一个子视图。如果我再次按下按钮并再次调用此功能,则会添加另一个设置ViewController,并且每次单击按钮时都会重复此操作
理想情况下,我希望此函数检查SettingsViewController子视图是否已存在,如果已存在,则不添加其他子视图
有什么想法吗?无论何时调用
addSettings
,您都在创建一个新的SettingsViewController()
。您应该将settingsVC
定义为类属性,并像使用self一样使用它。settingsVC
@ozgur我确实将它作为一个单独的类。只是觉得在这里放太多代码了。问题就在这一职能范围内。我正在试图弄清楚如何在每次调用此函数时检查是否已添加子视图。请尝试类似这样的打印(self.view.subviews.contains(其中:{$0是UIButton}))