2017-06-05 19 views
1

私はiOS用のTo Doリストアプリケーションの作成に関するオンラインチュートリアルを行っていますが、このチュートリアルではSwiftの古いバージョン(リンク:https://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-part-1)を使用しています。新しい標準に従ってコードを修正しようとしましたが、アプリケーションをビルドして実行すると、空のテーブルのみが表示されます。テキストは表示されません。テーブルビューのセルにテキストが表示されないのはなぜですか?

下のコードを貼り付けました。これには、デバッグに使用した2つのprintステートメントが含まれていますが、最初のもの( "hello world")のみが実行されているようです。どんな入力も非常に高く評価されます。ありがとうございました!

import UIKit 

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

@IBOutlet weak var tableView: UITableView! 
var toDoItems = [ToDoItem]() 

override func viewDidLoad() { 
    toDoItems.append(ToDoItem(text: "First text")) 
    print("hello world") 
    super.viewDidLoad() 
    tableView = UITableView() 
    tableView.dataSource = self 
    tableView.delegate = self 
    //self.view.addSubview(self.tableView) 
    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell") 


    if toDoItems.count > 0 { 
     return 
    } 

    toDoItems.append(ToDoItem(text: "text 1")) 
    toDoItems.append(ToDoItem(text: "text 2")) 
    toDoItems.append(ToDoItem(text: "text 3")) 
    toDoItems.append(ToDoItem(text: "text 4")) 
    toDoItems.append(ToDoItem(text: "text 5")) 
    toDoItems.append(ToDoItem(text: "text 6")) 
    toDoItems.append(ToDoItem(text: "text 7")) 
    toDoItems.append(ToDoItem(text: "text 8")) 
    toDoItems.append(ToDoItem(text: "text 9")) 
    toDoItems.append(ToDoItem(text: "text 10")) 
    toDoItems.append(ToDoItem(text: "text 11")) 
    toDoItems.append(ToDoItem(text: "text 12")) 

} 

// MARK: - Table view data source 

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
    print("should assign text here") 
    let item = toDoItems[indexPath.row] 
    cell.textLabel!.text = item.text 
    return cell 
} 
} 
+0

は 'tableView.reloadDataをお試しください() 'toDoItemsを追加した後 – Nef10

答えて

1

viewDidLoad()にこのラインを取り除く:

tableView = UITableView() 

tableView@IBOutletがあなたのストーリーボードに接続する必要があります。 UITableView()を割り当てることで、画面に表示されていない2番目のUITableViewが作成されます。


のViewControllerでのtableViewへの出口とドラッグの左側にある丸をクリックして、ストーリーボードtableViewコンセントを接続するには:

Hooking up the tableView IBOutlet

+0

ありがとうございました!私はあなたの提案に従って、今私のアプリはスムーズに実行されています。 –

+0

あなたは大歓迎です!私は助けることができてうれしい! – vacawama

関連する問題