回答編集履歴

1 コメントを受けて追記しました。

nakasho_dev

nakasho_dev score 2531

2018/03/20 15:28  投稿

tableView.reloadData()を呼んでいないのでテーブルの更新がされないのではないでしょうか。
tableView.reloadData()を呼んでいないのでテーブルの更新がされないのではないでしょうか。
【追記】
viewWillAppearでreloadDataを呼んでいるとのことですが、
metadataOutputにviewWillAppearは呼ばれているのでしょうか。
もし呼ばれていてreloadDataが実行されているとしたらself.itemsの中身が変わっていないのかもしれません。
気になったのはクラス変数としてitemを作成していることです。
itemを使いまわしているので、items[0]、items[1]と追加されても常に同じ内容になります。
metadataOutput関数内でしか使用していないので都度生成したほうが良いと考えます。
また、metadataOutput内の以下のコードで関数を抜けていないかなども確認したほうが良いのではないでしょうか。
```Swift
guard let stringCodeValue = metadataObject.stringValue else { return }
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る