更改视图的父级

Change the parent of a view

我有一个 table 视图,我会在从数据库中获得一些结果后的某个时候显示该视图

@IBOutlet weak var resultSetView: UITableView!

我这个 table 视图已经在 ViewController

我想以编程方式将此元素放在另一个视图中,例如停靠视图。根据我的要求。 在不同的情况下,也许我想把它放在另一个位置。

我该怎么做?

class ViewController: UIViewController {

 @IBOutlet weak var resultSetView: UITableView!
 @IBOutlet weak var nestedDockView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()


    nestedDockView.addSubview(resultSetView);


}

假设您的 tableView 已保留。您可以轻松地做到这一点:

[tableView removeFromSuperview];

[dockView addSubview:tableView];

执行此操作时,请注意:

当您重新指定视图的父级时,它将继承新父级的新布局约束,这可能与原始视图不同。

如果您正在考虑在 VC 中重新设置它的父级,它应该可以工作,但它在 s/w 设计和封装方面确实很混乱。