创建视图控制器并将现有 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 按钮的数组中