2016-09-20 23 views
0

私はNavigationControllerをTableViewControllerに埋め込みました。アプリを実行するとすべて正常に動作しますが、ナビゲーションバーは表示されません。ナビゲーションバーが埋め込みTableViewControllerに表示されない - Swift

これは私のコードがどのように見えるかです:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    let box = boxes[indexPath.row] 
    print(box.name) 



    if let storyboard = self.storyboard { 
     let viewController = storyboard.instantiateViewController(withIdentifier: "BoxDescriptionTVC") as! BoxDescriptionTableViewController 
     self.present(viewController, animated: false, completion: nil) 
     viewController.boxDetailsLabel.text = box.boxDescription 
     if let boxImageURL = box.boxImageURL { 
      viewController.boxImageView.loadImageUsingCacheWithUrlString(urlString: boxImageURL) 
     } 
    } 
} 

は、どのように私の代わりにTableViewControllerのそれを提示するために、私のNavigationControllerのインスタンスを作成するのですか?

+0

、代わりBoxDescriptionTVCのそれを提示します。 –

+0

NavViewControllerのインスタンスを作成してTableViewControllerの代わりに提示するにはどうすればよいですか? – cosmos

答えて

1

まず、ストーリーボードのNavigationControllerのstoryboardIDを設定できます。次に、次のようなコードを書くことができます。 (私はあなたのviewcontrollersが「メイン」ストーリーボードに配置されていることを前提としていて、あなたは、IdentityインスペクタでstoryboardIDを設定することができます)あなたはナビゲーションコントローラのインスタンスを作成する必要があります

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let boxDescriptionNavVC = storyboard.instantiateViewControllerWithIdentifier(BoxDescriptionNavID) as! UINavigationController 
let destinationTableViewVC = boxDescriptionNavVC.topViewController as! YourTableViewVC 
destinationTableViewVC.textVariable = box.boxDescription 
presentViewController(boxDescriptionNavVC, animated: true, completion: nil) 
+0

コンソールからこれを取得しました:致命的なエラー:オプション値をアンラッピングしている間に予期せずnilが見つかりました。 ViewController.boxDetailsLabel.text = box.boxDescription – cosmos

+0

埋め込まれたnavitationcontrollerのストーリーボードIDは何ですか? instantiateViewControllerWithIdentifier関数にまったく同じIDを入れましたか? – woogii

+0

私はこれを入れます: "BoxDescriptionNavID" – cosmos

関連する問題