ios - Popup VC 显示在单元格上而不是 tableView 上

标签 ios swift uitableview

我在 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/

相关文章:

ios - 在 UIView 中具有不同高度的各种自定义单元格的 UITableView

ios - 制作自定义导航,最好的方法是什么?

ios - Swift - 等到函数完成

android - 移动设备是否有足够的 CPU 来支持网站所有流量的 HTTPS?

ios7 如何获取 UITableViewCell 的 UISwitch 值?

ios - 将 .swift 中的全局变量传递给特定的 viewController

ios - Swift - 初始化 UITableViewCell

php - 数据没有被发送到数据库,因为它无法读取

swift - 绑定(bind)到多个 View 的单例发布者

swift - 定义与以前的值冲突 - 另外,何时删除覆盖?