创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS相关的知识,希望对你有一定的参考价值。
我正在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生成。
我想要的是
答案
试试这段代码:
//创建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";
这将复制标签。您可以使用文本字段,按钮等替换标签。
以上是关于创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有情节提要的情况下创建 ViewController 并将一个设置为另一个的委托?
ViewController创建过程使用storyboard