创建视图控制器并将现有 VC 的标签和按钮添加到新的 VC Swift iOS

Posted

技术标签:

【中文标题】创建视图控制器并将现有 VC 的标签和按钮添加到新的 VC Swift iOS【英文标题】:Creating a viewcontroller and adding Labels and buttons of existing VC to new VC Swift iOS 【发布时间】:2017-12-27 06:05:59 【问题描述】:

我正在快速创建form builder,我希望将文本字段、标签、按钮等元素分配给新创建的 VC,它们应该被复制或在新 VC 中动态创建。

这是我试图通过单击Save 按钮来获取新创建的 VC 的子视图

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

@IBAction func saveAction(_ sender: Any)

    let formFirstVC : UIViewController = UIViewController()
    formFirstVC.view.addSubview(getFormView)

这是我在滚动视图中创建的现有 VC 中的图像。现在我希望应该有一个新的视图控制器,其中应该生成所有元素 textFields/labels/buttons,就像我在此表单中创建的那样。

我想要什么

【问题讨论】:

评论不用于扩展讨论;这个对话是moved to chat。 【参考方案1】:

试试这个代码:

//创建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";

这将复制标签。您可以将标签替换为文本字段、按钮等。

【讨论】:

感谢您的时间努力,但我该怎么做.. 会解释更多 复制代码并粘贴即可。用 Uitextfield/UIButton 替换 UILabel。 好的,如果您需要任何帮助,请告诉我 “UIView”类型的值没有成员“copyView” 尝试 copy() 而不是复制视图

以上是关于创建视图控制器并将现有 VC 的标签和按钮添加到新的 VC Swift iOS的主要内容,如果未能解决你的问题,请参考以下文章

想在标签栏视图控制器中添加一个简单的导航栏

快速创建一个对象的新实例并将其放入一个带有 TabBarView 按钮的数组中

segue 按钮到下一个视图控制器在 xcode 中引发错误

Android:创建自定义视图并将其动态添加到布局中

在界面生成器中隐藏视图控制器的标签栏

在标签栏控制器之前添加视图控制器