为iOS应用创建了“下一步”按钮...单击后出现SIGABRT错误

时间:2018-11-20 18:53:46

标签: ios swift

我正在尝试构建基于GoogleMaps的应用程序。当用户使用MapViewController时,我希望他们能够在地图上选择一个位置,然后单击右上角的“下一步”。这样做应该将它们带到另一个显示位置说明的屏幕(HomeViewController)。我坚持执行下一步按钮。我当前的按钮代码如下:

override func viewDidLoad()
{
....

navigationItem.rightBarButtonItem = UIBarButtonItem(title:"Next", style: .plain, target: self, action: #selector(MapViewController.next as (MapViewController) -> () -> ()))

}

     func next()
     {
        print("next")
        if let navController = self.navigationController, let viewController = self.storyboard?.instantiateViewController(withIdentifier: "indentfier") as? HomeViewController{
            navController.pushViewController(viewController, animated: true)
        }
     }

我最初仅使用print("next")来运行它,并且它起作用了(即,它只是在控制台上打印了“ next”)。当我通过推添加第二行时,单击下一步后,该应用开始崩溃。我的应用程序委托也出现了SIGABRT错误。

注意:HomeViewController实际上是主页;这是上一个屏幕,用户在地图之前已经看过4-5个屏幕。我基本上希望他们在点击“下一步”时回到首页的几个屏幕。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

替换

navigationItem.rightBarButtonItem = UIBarButtonItem(title:"Next", style: .plain, target: self, action: #selector(self.next(_:)))

@objc func next(_ bar:UIBarButtonItem) {

}