2016-07-27 3 views
3

私の学校用のアプリケーションを設計していますが、ビューコントローラ内のテーブルビューを使用して単純なディレクトリを作成しようとしています。私はオブジェクトを作ろうとすることから始めましたが、さらに単純な配列に切り替えましたが、まだ運がありません。コードやストーリーボードに問題があるかどうかはわかりません。ここでのViewControllerのコードは次のとおりです。配列ビューを使用したテーブルビュー - xcode 7.3

import UIKit 

class DirectoryViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var backButton2: UIButton! 

    @IBOutlet weak var directoryTableView: UITableView! 

    // @IBOutlet weak var nameLabel: NSLayoutConstraint! 

    // let searchController = UISearchController(searchResultsController: nil) 

    // var directoryObjects: NSMutableArray! = NSMutableArray() 

    var names = ["Teacher 1", "Teacher 2", "Teacher 3"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     /* 
     self.directoryObjects.addObject("Teacher 1") 
     self.directoryObjects.addObject("Teacher 2") 
     self.directoryObjects.addObject("Teacher 3") 

     self.directoryTableView.reloadData() 
     */ 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 


    // Mark - tableview 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     return 3 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 
     let directoryCell = self.directoryTableView.dequeueReusableCellWithIdentifier("directoryCell", forIndexPath: indexPath) as! DirectoryTableViewCell 

     // directoryCell.directoryLabel.text = self.directoryObjects.objectAtIndex(indexPath.row) as? String 

     directoryCell.directoryLabel.text = names[indexPath.row] 

     return directoryCell 
    } 


    @IBAction func backButton2Tapped(sender: AnyObject) { 
     self.dismissViewControllerAnimated(true, completion: nil) 
    } 

} 

ここDirectoryTableViewCellためのコードは次のとおりです。

import UIKit 

class DirectoryTableViewCell: UITableViewCell { 

    @IBOutlet weak var directoryLabel: UILabel! 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 
/* 
    func directoryTableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    } 
    */ 
} 
+3

デリゲートを設定します。 – WMios

+0

これはコード内かストーリーボード内にあるでしょうか? – themc1r

+0

いずれか、それはあなた次第です。私は答えとして – WMios

答えて

0

あなたがデリゲートを設定する必要があります。最も簡単な方法はコードです。

viewDidLoadアドオンで

:これは、それらのtableView関数が呼び出されるようになります

directoryTableView.delegate = self 
directoryTableView.dataSource = self 

私はまた、変更をお勧めしたい:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
{ 
    return 3 
} 

へ:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
{ 
    return names.count 
} 
+0

これはエラーEXC_BAD_INSTRUCTIONを行ディレクトリに表示しています.Cell.directoryLabel.text = names [indexPath.row] – themc1r

+0

あなたについて 'DirectoryTableViewCell'については何も分かりませんが、そうでなければ動作するはずです。 – WMios

+1

ええと、 'cellForRowAtIndexPath'関数で、セルを定義するときに、' self.directoryTableView'を最初の行で 'tableView'に変更してみてください。 –

関連する問題