如何在2个ViewControllers Objective-C上添加UIView

时间:2018-09-23 03:02:40

标签: ios objective-c

TLDR;如何在2个不同的ViewController上使用相同的UIView? 使用Objective-C

我正在为应用程序设置一个小的设置类型选项。

有一个按钮,当按下该按钮时会弹出一个UIView,该UIUI可以访问某些UISwitch来控制某些设置,然后在UIView上单击“确定”按钮以将其关闭。我通过使弹出窗口的alpha值为1,而隐藏时为0来控制弹出窗口。

我需要UIView在2个不同的ViewController上可用。而且两个2个ViewController的UISwitch状态需要同步

谢谢!

2 个答案:

答案 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中,并在视图控制器出现时阅读并遵守。