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