创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS

时间:2017-12-27 06:05:59

标签: ios swift uiview uiviewcontroller

我在swift中创建一个form builder,我希望将textFields,Labels,Buttons等元素分配给新创建的VC,或者应该在新VC中复制或动态创建它们。

这是我试图通过点击Save按钮

为新创建的VC获取子视图

我希望保存多个表单,因为我需要查看多个文本按钮标签才能查看它可以保存在新的viewcontroller中,新的VC应该以编程方式创建,因为我点击了保存按钮。像这样可以创建多个VC,因为我想要更多的表单和字母我可以通过其他TablView中的表单名称检索它们然后单击一个单元格相关的View-VC将出现带有文本按钮标签

@IBAction func saveAction(_ sender: Any)
{
    let formFirstVC : UIViewController = UIViewController()
    formFirstVC.view.addSubview(getFormView)
}

以下是我在Scroll视图中创建的现有VC中的图像。现在我希望应该有一个新的视图控制器,其中应该按照我在这种形式中创建的所有元素textFields / labels / buttons生成。

enter image description here

我想要什么

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这段代码:

//创建UIVIEW的扩展程序

extension UIView
{
    func copyView() -> UIView?
    {
        return NSKeyedUnarchiver.unarchiveObjectWithData(NSKeyedArchiver.archivedDataWithRootObject(self)) as? UIView
    }
}

然后在第二个视图控制器的ViewDidLoad中添加:

 let view = UIView(frame: CGRectMake(0, 0,375,625));
 view.backgroundColor = UIColor.greenColor();
 let label = UILabel(frame: view.frame);
 label.text = "test";
 label.backgroundColor = UIColor.whiteColor();
 view.addSubview(label);

 let copyView = view.copyView();
 let copyLabel = copyView?.subviews[0] as! UILabel;
 view.backgroundColor = UIColor.blackColor();
 label.text = "abc";

这将复制标签。您可以使用文本字段,按钮等替换标签。