更改外部ViewController的颜色

时间:2018-02-20 20:13:54

标签: ios swift uiview uicolor

我有一个viewController和一个containerView。不幸的是,我无法从父类更改containerView中表示的子viewController的颜色。更改containerView的背景颜色,这是我能够从父视图中获取的唯一内容,不会更改引用子项的背景颜色,只会更改保持它的不可见容器视图。

因此,我测试了一种方法,我从父类的子类中调用一个函数,如下所示:

@IBAction func changeToRed(sender: viewController) {
    self.view.backgroundColor = UIColor(red: 230/255, green: 80/255, blue: 30/255, alpha: 1.0)
}

这是在子viewController

otherView().changeToRed(sender: self)

这在父视图控制器中

此技术不起作用。我已经尝试使用常规函数并在父viewController中进行随机试错。有什么明显的我做错了吗?或者是否有可能采用不同的技术来做到这一点?提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果您使用Storyboard和segue设置了容器,那么您可以像这样获得子视图控制器。您将它放在父视图控制器中,您还可以在其中声明childViewController。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {        
    childViewController = segue.destination
}

答案 1 :(得分:0)

最简单的选择就是在XIB / Storyboard中或以编程方式将子视图控制器的视图背景更改为透明(UIColor.clear)。然后,您可以直接更改容器视图的背景颜色,如前所述。