在主视图Swift中嵌入子视图

Posted

技术标签:

【中文标题】在主视图Swift中嵌入子视图【英文标题】:Embedding subview in main view Swift 【发布时间】:2014-08-05 14:55:45 【问题描述】:

如果您查看this image(我不想上传它,因为它不属于我),您会在 iPad 的设置应用程序中看到主 uiview 控制器内的 uiview .我的问题是,我如何以编程方式复制它?换句话说,如何将 UIView 嵌入到另一个中?

以下是我所知道和做过的:

根据我的研究,这称为“子视图”。这是正确的吗? 我创建了一个 UIView,其中包含我想要在界面构建器中使用的适当元素。它目前不是子视图,而是与我的主视图处于同一层次。 我发现 same exact question 是在 Obj-C 中,而不是在我的语言 (Swift) 中。

这是我需要的:

单击按钮后,如何以编程方式快速生成子视图? 由于这个子视图在 UI 元素方面相当复杂,我希望能够在界面生成器中设计它。

这是我目前所拥有的:

 @IBAction func buttonPressedSpawnSubview(sender: AnyObject) 
    //Open a subview from Interface builder.

@IBAction func closeButtonPressedSpawnSubview(sender: AnyObject) 
        //kill the subview.

谁能帮我弄清楚如何填写注释行?

【问题讨论】:

【参考方案1】:

您看到的是另一个视图之上的模态 UIView。

可见 ViewController 中的一个示例是:

    self.modalTransitionStyle = UIModalTransitionStyle.FlipHorizontal // Choose whatever transition you want
    self.modalPresentationStyle = .CurrentContext // Display on top of current UIView
    self.presentViewController(yourNewViewObject, animated: true, completion: nil)

【讨论】:

现在如何让这段代码在代码执行时拉出我在界面生成器中设计的视图?以及如何杀死模态视图?抱歉,我是编程新手。 您是否为弹出窗口创建了视图控制器? 你可以使用它自己的 IBAction 关闭模态视图控制器(因为它是模态的,它不允许你与它后面的界面交互)使用:self.dismissModalViewControllerAnimated(true) 我创建了一个视图控制器,其中包含界面构建器中的所有内容 你会创建 yourNewViewObject 使用类似的东西: var yourNewViewObject : SecondViewController = SecondViewController() 然后像上面一样将它传递给 presentViewController。

以上是关于在主视图Swift中嵌入子视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 中从父视图访问容器视图子视图

Swift 3 在页面视图控制器中嵌入按钮

嵌入在容器中的 Swift 表格视图

如何从视图控制器发送数据以在 swift 5 中嵌入视图控制器?

由于嵌入式表格视图,Swift 无法使用 hidesBarsOnSwipe

在 Swift 中使 NavigationBar 子视图可点击