self.navigationController?.pushViewController不工作Swift

时间:2017-12-03 18:41:15

标签: ios swift

我有CollectionViewController,当我试图点击单元格并导航到相应的ViewControllers时它不能正常工作。我可以解决这个问题。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell:AddOptionCollectionViewCell = collectionView.cellForItem(at: indexPath) as! AddOptionCollectionViewCell

    if (cell.name.text == "CONTRAST"){
        let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

        let newViewController = storyBoard.instantiateViewController(withIdentifier: "ContrastViewController") as! ContrastViewController
        self.navigationController?.pushViewController(newViewController, animated: true)
    }

2 个答案:

答案 0 :(得分:6)

我认为这个问题是由于CollectionViewController类的导航堆栈的值为零。 因此,首先转到storyboard并选择CollectionViewController类并将NavigationController嵌入其中。在尝试并运行之后,它将起作用。

一切顺利。

答案 1 :(得分:2)

在我的情况下,我错误地将tearDown添加到MainViewController而不是将其添加到window.rootViewController,然后将导航用作UINavigationController

rootViewController,应该是:

SceneDelegate.swift