准备功能不会通过Segue调用

时间:2018-09-17 19:12:34

标签: swift uitableview uistoryboardsegue

在我的快捷应用程序中,我具有此功能,因为它并不重要,所以我不指定类。

class ViewController: UIViewController {

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let destination = segue.destination as? LocalTVC,
            let indexPath = tableView.indexPathForSelectedRow {
            destination.selectedLocal = favouriteLocals[indexPath.row]
        }
    }

    func presentLocalTVC() {
        let storyBoard: UIStoryboard = UIStoryboard(name: "Home", bundle: nil)
        let newViewController = storyBoard.instantiateViewController(withIdentifier: "localTVCID") as! LocalTVC
        self.present(newViewController, animated: true, completion: nil)
    }

}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.presentLocalTVC()
}

但是当显示tableViewControlller LocalTVC时,变量“ selectedLocal”为nil。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果您使用的是segues,则应使用performSegue(withIdentifier:sender:) ,而present(_:animated:completion:)则与情节提要代表无关。