我在 tableView (FeedTableViewController
) 中显示一个在单击按钮时运行的函数的弹出窗口
func preset(){
let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PostOptions") as! PostOptionsViewController
self.addChild(popOverVC)
popOverVC.view.frame = self.view.frame
self.tableView.addSubview(popOverVC.view)
popOverVC.didMove(toParent: self)
}
PostOptionsViewController
是显示在 tableView 上的 VC。现在,当运行 preset()
时,popOverVC
将显示在 tableView 的单个单元格上,而不是整个 tableView 上。
我想在整个tableView上显示它。我关注了answeres here这就是我所做的。
但是 VC 正在显示在单元格空间上,当您滚动时,VC 会与单元格一起显示。它需要单元格的边界。
所以我试图停止滚动。
func scrollToggle(){
print("CLCKED")
if tableView.isScrollEnabled {
tableView.isScrollEnabled = false
}else{
tableView.isScrollEnabled = true
}
}
我尝试在此处停止滚动,使其看起来像弹出窗口。现在我似乎无法通过 PostOptionsViewController
我尝试从 PostOptionsViewController
这样做
@objc func test(_ sender : UILabel){
self.view.removeFromSuperview()
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "feed") as! FeedTableViewController
nextViewController.scrollToggle()
}
但是我在控制台中打印了“CLCKED”,并且 View 被删除,但我无法再滚动 tableView
最佳答案
你说的是
self.tableView.addSubview
表格 View 是 ScrollView 。它滚动其 subview 。因此,您添加的 View 与 TableView 一起滚动。
为了防止这种情况,请将 View 固定到 TableView 的框架布局指南。或者只使用呈现的 View Controller ,而不是 subview Controller 。
关于ios - Popup VC 显示在单元格上而不是 tableView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57577710/