使用 NavigationController 将视图添加到 TableViewController
Posted
技术标签:
【中文标题】使用 NavigationController 将视图添加到 TableViewController【英文标题】:Add View to TableViewController with NavigationController 【发布时间】:2019-01-28 09:56:47 【问题描述】:为了向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
添加到view
和tableView
,如下所示:
self.view.addSubview(myView)
self.tableView.addSubview(myView)
但两者都不起作用。
我知道我可以使用UIViewController
并添加UITableView
,然后将myView
添加到UIViewController
会更容易。
我应该将myView
添加到另一个视图吗?
【问题讨论】:
【参考方案1】:UITableViewController 的 View 是 UITableView,所以不能在表格顶部的控制器中添加子视图。
您必须从 UIViewController 派生才能获得完整的布局控制。 不要使用 UITableViewController,而是使用 UIViewController 并将 UITableView 放入其中。
【讨论】:
【参考方案2】:是的,在 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]
【讨论】:
以上是关于使用 NavigationController 将视图添加到 TableViewController的主要内容,如果未能解决你的问题,请参考以下文章
通过 navigationController 使用 segue 传递数据
将 NavigationController 添加到当前视图
使用当前模态将数据从一个 uiviewcontroller 发送到另一个 navigationcontroller
如何使用NavigationController将数据从UIPickerView传递到以前的ViewController
如何将 NavigationController 保持在 subViewController 方向?
使用 NavigationController.PushViewController 的 BeginAnimations 和 CommitAnimations