2015-09-04 6 views
5

私はXcodeの7ベータ版を使用していると私は、しかし、私は多くの理由のためにUIViewController代わりのUITableViewControllerを使用していますチュートリアルオフこのコードを発見しました。 (これがこの特定の問題を引き起こしているかどうかはわかりません)。私はここに私のコードははのtableViewのエラーあいまいな使用(_行き方:numberOfRowsInSection :)

class ShoppingViewController: UIViewController { 
var toDoItems:NSMutableArray = NSMutableArray() 

override func viewDidAppear(animated: Bool) { 

    var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults() 

    var itemListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray 

    if ((itemListFromUserDefaults) != nil){ 
      toDoItems = itemListFromUserDefaults! 
    } 

    **self**.tableView.reloadData() 
} 

など

だが、私はエラーに 'tableView(_:numberOfRowsInSection:)

あいまいな使用を実行しているだけで、典型的なUITableViewControllerようUIViewControllerセットアップを得ています

if (segue != nil && segue!.identifier == "showDetail") { 
    var selectedIndexPath:NSIndexPath = **self**.tableView.indexPathForSelectedRow() 
    var detailViewController:DetailsViewController = segue!.destinationViewController as! DetailsViewController 
    detailViewController.toDoData = toDoItems.objectAtIndex(selectedIndexPath.row) as! NSDictionary 

} 

候補者(Xcodeによる):

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


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 

    let toDoItem:NSDictionary = toDoItems.objectAtIndex(indexPath.row) as! NSDictionary 
    cell.textLabel!.text = toDoItem.objectForKey("itemTitel") as? String 

    return cell 
} 
+0

という名前のSDKのビューコントローラが存在する必要がありますが、あなたが 'tableView'に' delegate'と 'dataSource'を設定していますか?あなたは 'UITableViewDelegate'と' UITableViewDataSource'プロトコルに準拠していないようですね? – Bannings

+0

@Banningsどのように私はそれを準拠させるでしょうか? – NewBeginnings

+0

はこれを試してみてください: 'クラスShoppingViewController:のUIViewController、UITableViewDataSource、UITableViewDelegate'は – Bannings

答えて

1

Xcode 7.1ベータ版にアップグレードした後、同様の問題が発生しました。これがベータ版のバグなのだろうか?誰もが解決策を見つけましたか?

UPDATE - 私はこの問題を私のプロジェクトで解決しました。私は自分のtableViewのIBOutletを設定し、そのオブジェクトのreloadDataを実行しなければなりませんでした。例えばIBOutletをmyItemsTableViewに設定し、self.myItemsTableView.reloadData()を呼び出してうまくいきました。このプロジェクトでは、myItemsTableViewが必要であり、汎用コマンドtableView.reloadData()ではなくリロードされました。

希望するものがあります。

2

tableViewが正しく初期化されていることを確認してください。それは私の同じ問題を解決しました。

0

View Controllerに何か他の名前を付けて解決したのと同じ問題がありました。

DetailsViewControllerまたはDetailViewController

関連する問題