更改外部颜色 ViewController
Change color of external ViewController
我有一个 viewController 和一个 containerView。不幸的是,我无法从父 class 更改 containerView 中表示的子 viewController 的颜色。更改 containerView 的背景颜色,这是我唯一能够从父 viewController 获得的东西,不会更改引用子项的背景颜色,而只会更改持有它的不可见 containerView。
因此,我测试了一种方法,我从父级的子级 class 中调用一个函数,如下所示:
@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
这个技巧不起作用。我已经用常规函数尝试过它,并在父 viewController 中进行了随机试验和错误。有什么明显的我做错了吗?或者是否有可能不同的技术来做到这一点?提前致谢!
最简单的选择就是在 XIB/Storyboard 中或以编程方式将子视图控制器的视图背景更改为透明 (UIColor.clear
)。然后,您可以直接更改容器视图的背景颜色,就像您之前尝试的那样。
如果你设置了带有Storyboard和segue的容器,那么你可以像这样获取子视图控制器。你把它放在你的父视图控制器中,在那里你也声明了 childViewController。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
childViewController = segue.destination
}
我有一个 viewController 和一个 containerView。不幸的是,我无法从父 class 更改 containerView 中表示的子 viewController 的颜色。更改 containerView 的背景颜色,这是我唯一能够从父 viewController 获得的东西,不会更改引用子项的背景颜色,而只会更改持有它的不可见 containerView。
因此,我测试了一种方法,我从父级的子级 class 中调用一个函数,如下所示:
@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
这个技巧不起作用。我已经用常规函数尝试过它,并在父 viewController 中进行了随机试验和错误。有什么明显的我做错了吗?或者是否有可能不同的技术来做到这一点?提前致谢!
最简单的选择就是在 XIB/Storyboard 中或以编程方式将子视图控制器的视图背景更改为透明 (UIColor.clear
)。然后,您可以直接更改容器视图的背景颜色,就像您之前尝试的那样。
如果你设置了带有Storyboard和segue的容器,那么你可以像这样获取子视图控制器。你把它放在你的父视图控制器中,在那里你也声明了 childViewController。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
childViewController = segue.destination
}