使用NavigationController将视图添加到TableViewController

时间:2019-01-28 09:56:48

标签: swift uitableview uiviewcontroller uinavigationcontroller

要向UITableViewController添加视图,我将视图添加到navigationController如下:

self.navigationController?.view.addSubview(view)
view.translatesAutoresizingMaskIntoConstraints = false
view.rightAnchor.constraint(equalTo: (self.navigationController?.view.rightAnchor)!).isActive = true
view.bottomAnchor.constraint(equalTo: (self.navigationController?.view.bottomAnchor)!).isActive = true
view.widthAnchor.constraint(equalToConstant: 70).isActive = true
view.heightAnchor.constraint(equalToConstant: 120).isActive = true

但是当您要推送新的ViewController时,它将保留添加的视图(myView)。

我试图将myView添加到viewtableView中,如下所示:

self.view.addSubview(myView)
self.tableView.addSubview(myView)

,但是两者都不起作用。 我知道我可以使用UIViewController并添加一个UITableView,然后将myView添加到UIViewController会更容易。

我应该将myView添加到另一个视图吗?

2 个答案:

答案 0 :(得分:1)

UITableViewController的视图是UITableView,因此无法将子视图添加到表顶部的控制器。

您必须派生自UIViewController以获得完整的布局控制。 代替使用UITableViewController,而是使用UIViewController并将UITableView放入其中。

答案 1 :(得分:0)

是的,可以在UITableViewConroller中使用

   let bottomView = UIView()
    bottomView.backgroundColor = .red // or your color
    bottomView.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height - 78, width: tableView.frame.size.width, height: 78) // 78 or your size of view
    navigationController?.view.addSubview(bottomView)
    tableView.tableFooterView = UIView()
    bottomView.backgroundColor = .red // or your color
    bottomView.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height - 78, width: tableView.frame.size.width, height: 78) // 78 or your size of view
    navigationController?.view.addSubview(bottomView)
    tableView.tableFooterView = UIView()[enter image description here][1]