2016-09-18 17 views
1

私はUIViewControllerを持っていると私はそれにTableViewを置く:SwiftのUITableViewにセルが表示されないのはなぜですか?

enter image description here

私も私のテーブルビューは、動的生成コンテンツを持ち、識別子「セル」を追加ストーリーボードで確認し、それにUITableViewCellを追加しましたUITableViewCellに私は私のクラスにアウトレットとそれを接続すると、私はUITableViewDelegateから継承を設定します

class MapViewController: UIViewController, UITableViewDelegate, UITextViewDelegate { 

@IBOutlet weak var myTableDetailsPanel: UITableView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    myTableDetailsPanel.delegate = self 
} 

それから私は私のカスタムオブジェクトは、私のアレイに追加:

var items = NSMutableArray() 
... 
print("size of items before: \(items.count)") 
items.addObject(myObject) 
print("size of items after: \(items.count)") 
myTableDetailsPanel.reloadData() 
myTableDetailsPanel.hidden = false 

私もこの方法があります:

func tableView(myTableDetailsPanel: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = myTableDetailsPanel.dequeueReusableCellWithIdentifier("cell") as! MyDetailsCell 
    let yawp:MySingleObject = self.items[indexPath.row] as! MySingleObject 
    print("hello") 
    ... 

...私の問題は、パネルが空で表示されていることです。コンソールに表示されます。

size of items before: 0 
size of items after: 1 

しかし、何とか私はhelloと表示されません。私のコードはcellForRowAtIndexPathから決して走らない。なぜそうなのか?

+4

'myTableDetailsPanel.dataSource = self'の宣言が欠落していて、もちろん' UITableViewDataSource'を実装しています –

+0

ありがとうございました!私はそれを受け入れることができるように答えとしてそれを提出してください! – user3766930

+1

'var items = NSMutableArray()'ではなく 'var items = [MySingleObject]()'を使うと、多くの型キャストを取り除くことができます。 – vadian

答えて

3

UITableViewの変更について通知するようにUITableViewDelegateプロトコルを実装すると、UITableViewDataSourceを実装する必要があります。データソースは、テーブルビューを作成および変更するために必要な情報をテーブルビューオブジェクトに提供します。

だからUITableViewDataSourceプロトコルを実装し、このようselfとしてdataSourceを宣言する必要があります:

myTableDetailsPanel.dataSource = self 

私は、これはあなたを助ける願っています。

+1

ありがとう! – user3766930

関連する問題