Xcode6.4 Swift 特定のページのみStoryboardを使用するには


現在、Xcode6.4 SwiftでStoryboardを使用せずにコードだけでアプリを作っています。  
が、あるページでTableViewのカスタムセルを使うことになりコードだけで書くのは困難なためそのページだけStoryboardを使用したいと思っています。  
StoryboardとXibは最初に削除しており、その後新たに追加しました。  
info.plistのMain storyboard file base
nameには追加したStoryboard名を追加しましたが、Storyboardで作ったTableViewがエミュレータで表示されません。

何か処理が足りないのでしょうか。  
コードは以下のようになっています。

// AppDelegate

[code]

    import UIKit
    
    @UIApplicationMain
    
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
    var window: UIWindow?
    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        self.window?.backgroundColor = btWhite
    
        self.window?.rootViewController = UINavigationController(rootViewController: AreaSelectViewController())
    
    
        // ステータスバー文字色
        UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
        // ナビゲーションバーの色
        UINavigationBar.appearance().barTintColor = btGreen
        // ナビゲーションバーボタンのベースの色（設定アイコンの色など）
        UINavigationBar.appearance().tintColor = btWhite
        // ナビゲーションバーのタイトル色フォント
        if displayWidth == 414{
            UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: btWhite, NSFontAttributeName:btFont22B!]
        }
        else if displayWidth == 375{
            UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: btWhite, NSFontAttributeName:btFont20B!]
        }
        else{
            UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: btWhite, NSFontAttributeName:btFont18B!]
        }
        // ナビゲーションバーアイテムの色フォント
        UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: btWhite, NSFontAttributeName: btFont14B!], forState: UIControlState.Normal)
    
        self.window?.makeKeyAndVisible()
    
        return true
    }
    
    func applicationWillResignActive(application: UIApplication) {}
    func applicationDidEnterBackground(application: UIApplication) {}
    func applicationWillEnterForeground(application: UIApplication) {}
    func applicationDidBecomeActive(application: UIApplication) {}
    func applicationWillTerminate(application: UIApplication) {}
    
    }
    
[/code]

//遷移先のView（Storyboardで作ったもの）ここがナビゲーションバーのみ表示され、Tableが表示されない

[code]

    import UIKit
    
    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
    
    @IBOutlet weak var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    
        // tableViewの紐付け
        tableView.delegate = self
        tableView.dataSource = self
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // セルに表示するテキスト
    let texts = ["hello", "swift", "world"]
    
    // セルの行数を取得するメソッド（tableViewの実装に必須）
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return texts.count
    }
    
    // セルの内容を変更するメソッド（tableViewの実装に必須）
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
    
        cell.textLabel?.text = texts[indexPath.row]
        return cell
    }
    
    }
    
[/code]

遷移先のViewへは、遷移元から  
self.navigationController?.pushViewController(ViewController(), animated:
true)  
で遷移させています。

また、ViewControllerの  
tableView.delegate = self  
tableView.dataSource = self  
で、  
Thread 1:EXC_BAD_INSTRUCTION(code=EXC_l386_INVOP,subcode=0×0  
のエラーが画面遷移時に出ます。




まず、Storyboard上で遷移先のViewControllerに **Storyboard ID** を設定します。好きな名前でかまいません。  
[![Storyboard
ID](https://i.stack.imgur.com/vz5NS.png)](https://i.stack.imgur.com/vz5NS.png)

そして、下記のようにしてViewControllerを生成/遷移します。`instantiateViewControllerWithIdentifier`の引数には
**Storyboard ID** に設定した文字列を使います。（今回、クラス名と同じにしてしまったのでちょっと紛らわしいですが）

[code]

    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController") as! ViewController
    self.navigationController?.pushViewController(vc, animated: true)
    
[/code]

追記です。  
コード中心で作成されているようなので蛇足になるかも知れませんが、`delegate`と`dataSource`の設定をStoryboard上で行えばコードを書く必要がなくなります。  
[![delegateとdataSourceの紐付け](https://i.stack.imgur.com/ycjYs.png)](https://i.stack.imgur.com/ycjYs.png)  
こうすれば、

[code]

    tableView.delegate = self
    tableView.dataSource = self
    
[/code]

これを書かなくてよくなります。

