Swift UibarbuttonItem放松前面的控制器 - 不起作用



我有两个具有ViewControllerClassMapViewController的控制器。在ClassMapViewController中,我有一个 UIBarButtonItem,在敲击时将关闭ClassMapViewController并返回ViewController

import UIKit     
class ViewController: UIViewController { 
    @IBAction func unwindToHome(segue: UIStoryboardSegue) {
    }   
}
ClassMapViewController:UIViewController{
    var mapView:MapClass=MapClass()
    override func viewDidLoad(){
        super.viewDidLoad()
        mapView.latitude=43.679456
        mapView.longitude=-79.624712
        mapView.title="HelloWorld"
        mapView.address="firstmarker"
        mapView.zoom=12
        view=mapView.getView()
        navigationItem.leftBarButtonItem=UIBarButtonItem(title:"Back",style:.plain,target:self,action:"previous")
    }
    func previous(){
        present(ViewController(),animated:true,completion:nil)
        dismiss(animated:true,completion:nil)
    }
}

在我的头顶上,我相信您在参数列表中缺少 #selector

navigationItem.leftBarButtonItem=UIBarButtonItem(
    title: "Back", 
    style: .plain,
    target: self, 
    action: #selector(previous)
)

您将需要一个 @OBJC 在您要调用的函数上的修改器,但是,我认为您可以像下面的present((方法一样调用ViewController,需要提供对您的VC的实际参考。

@objc func previous() {
    present(ViewController(),animated:true,completion:nil)
    dismiss(animated:true,completion:nil)
}

最新更新