这可能听起来像一个奇怪的请求,但我正试图找到一种方法来显示导航控制器(带有导航栏,可以从堆栈中推送和弹出控制器),它显示在表格视图的中间并使用表格视图滚动。我怎样才能实现这个功能?
答案 0 :(得分:2)
当我阅读你的问题时,我有兴趣构建一个演示服务器。我试图使用嵌入导航控制器的容器,但不幸的是它没有工作,因为你不能在正常UITableView
的重复内容中使用容器。所以我使用UITableViewController
来使用静态单元格,并且我设法嵌入了导航控制器:
方法#2,如果您想将UITableView与原型单元格一起使用:
您可以在单元格中创建自定义单元格,然后实例化导航控制器并将其视图添加为子视图:
并在CustomTableViewCell.swift类中执行以下操作:
class CustomTableViewCell: UITableViewCell {
var navIsAdded = false // boolean used to make sure that nav view controller is added and will not be added again
var currentNavigationController : UINavigationController! // retain the controller so that push/pop works, if you didn't retain it like this, the view will be added but no push or pop will work
func setupNavVC(){
if navIsAdded{
return
}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.currentNavigationController = storyboard.instantiateViewControllerWithIdentifier("navVC") as! UINavigationController
let view = self.currentNavigationController.view
var frame = view.frame
frame.size = self.frame.size
view.frame = frame
self.contentView.addSubview(view)
navIsAdded = true
}
override func layoutSubviews() {
setupNavVC()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}