2017-04-12 13 views
0

私は以下のように作成されたモーダルUIViewを持っていますが、別のUIViewControllerをUIViewからプッシュする方法を見つけることができません。ビューの親UIViewControllerにはUINavigationControllerがあります。以下のコードはすべて失敗します。 UIViewのは、あなたがあなたのSearchViewとタイプUIViewControllerの1つのインスタンスプロパティを作成することができますUICollectionViewモーダルUIViewからUIViewControllerをプッシュする方法は?

親のUIViewController

let searchView = SearchView() 

view.addSubview(searchView) 

モーダルのUIView

class SearchView: UIView, 
       UICollectionViewDelegateFlowLayout, 
       UICollectionViewDataSource { 

var collectionView: UICollectionView! 


---- 


func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

    let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil) 

    let myViewController: MyViewController = mainStoryBoard.instantiateViewController(withIdentifier: “MyViewController") as! MyViewController 

//  let currentController = self.getCurrentViewController() 

//  currentController?.navigationController?.pushViewController(myViewController, animated: true) 

// self.parentViewController.navigationController.pushViewController(myViewController, animated: true) 


    let vc = self.window?.rootViewController 

    let navController = vc?.navigationController 

    navController?.pushViewController(myViewController, animated: true) 

答えて

1

を持っています。今このプロパティをpushViewControllerに使用してください。その後、SearchViewというインスタンスを作成する場所を初期化します。

サブビューはその selfへのVCプロパティを設定した今、あなたはこの SearchViewを追加する
class SearchView: UIView, 
      UICollectionViewDelegateFlowLayout, 
      UICollectionViewDataSource { 

    var collectionView: UICollectionView! 
    var vc: UIViewController? 


    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

     let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil) 

     let myViewController = mainStoryBoard.instantiateViewController(withIdentifier: "MyViewController") as! MyViewController 
     vc?.navigationController?.pushViewController(myViewController, animated: true) 

    } 

let searchView = SearchView() 
searchView.vc = self 
view.addSubview(searchView) 
+0

'searchView.vc = self' worked – markhorrocks

関連する問題