使用popOver打开第二个视图时未调用viewWillDisapper

问题描述

在mainVC上,我有一个 TableView ,该按钮带有一个应打开第二个VC的按钮,可以在其中添加显示内容,然后在Table 显示,类型为:呈现为弹出窗口”。

我正在使用performSegue(withIdentifier:"goToOtherView",sender: nil打开第二个VC。

class FirstViewController: UIViewController {
    
    @IBOutlet weak var tableView: UITableView!
    
    var groupData = ["Data,Data1,Data2"]

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .green
        
        tableView.delegate = self
        tableView.dataSource = self
        
    }

    @IBAction func btnTapped(_ sender: Any) {
        
        performSegue(withIdentifier: "goToOtherView",sender: nil)
    }
    
    override func viewWillAppear(_ animated: Bool) {
        print("FirstViewController will appear")
    }
    
    override func viewDidAppear(_ animated: Bool) {
        print("FirstViewController did appear")
    }
    
    override func viewWilldisappear(_ animated: Bool) {
        print("FirstViewController will disappear")
    }
    
    override func viewDiddisappear(_ animated: Bool) {
        print("FirstViewController did disappear")
    }
    
}

class SecondViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .blue

    }
    
    override func viewWillAppear(_ animated: Bool) {
        print("SecoundViewController will appear")
    }
    
    override func viewDidAppear(_ animated: Bool) {
        print("SecoundViewController did appear")
    }
    
    override func viewWilldisappear(_ animated: Bool) {
        print("SecoundViewController will disappear")
    }
    
    override func viewDiddisappear(_ animated: Bool) {
        print("SecoundViewController did disappear")
    }
    
}

故事板

enter image description here

启动应用程序

When I start the App

当我打开第二个VC

When I open the secondVC

当我关闭第二个VC

enter image description here

永远不会调用FirstViewController willdisappeardiddisappear,甚至在关闭第二个VC时也不会调用willAppeardidAppear我想在FirstView tableView.reloadData() / willAppear

调用函数didAppear

添加新闹钟时,它类似于IOS认时钟应用程序。

解决方法

快速猜测,但我认为这是因为演示模式为pageSheet

您可以尝试将其更改为全屏显示吗?

您还可以将您的segue配置更改为:enter image description here

视图消失不会被调用,因为视图不会从窗口中完全消失