TLDR;如何在2个不同的ViewController上使用相同的UIView? 使用Objective-C
我正在为应用程序设置一个小的设置类型选项。
有一个按钮,当按下该按钮时会弹出一个UIView,该UIUI可以访问某些UISwitch来控制某些设置,然后在UIView上单击“确定”按钮以将其关闭。我通过使弹出窗口的alpha值为1,而隐藏时为0来控制弹出窗口。
我需要UIView在2个不同的ViewController上可用。而且两个2个ViewController的UISwitch状态需要同步
谢谢!
答案 0 :(得分:0)
您可以创建XIb并将其加载到不同的View控制器上
我可以在Swift中为您提供帮助。
第1步-创建一个XIB并为其分配一个UIView。
第2步-如下所示在各自的视图控制器中调用该视图
var sampleoneView: SampleView?
var sampleTwoView: SampleView?
按如下所示初始化这些视图
sampleoneView = SampleView.initSampleView(X vX:CGFloat, Y vY:CGFloat, width: CGFloat, height: CGFloat)
sampleTwoView = SampleView.initSampleView(X vX:CGFloat, Y vY:CGFloat, width: CGFloat, height: CGFloat)
其中initSampleView函数将定义如下
public class func initSampleView() -> SampleView{
let sampleView:SampleView = Bundle.main.loadNibNamed("SampleView", owner: self, options: nil)?.last as! SampleView
sampleView.frame = CGRect(x: vX, y: vY, width: width, height: height)
return sampleView
}
答案 1 :(得分:0)
有一个按钮,当按下该按钮时会弹出一个UIView,该UIUI可以访问某些UISwitch来控制某些设置,然后在UIView上单击“确定”按钮以将其关闭。我通过使弹出窗口的alpha值为1,而隐藏时为0来控制弹出窗口。
因此,这不仅是一个视图及其子视图,而且是对它们进行操作的一整套控制器行为。因此,这需要是一个用其视图实例化两次的子视图控制器。在两个位置的情节提要中使用“容器视图”,而“嵌入”脚本指向相同的视图控制器及其视图。
并且2个ViewController的UISwitch状态必须同步
当用户在视图中进行更改时,将所有必需的信息写入UserDefaults中,并在视图控制器出现时阅读并遵守。