前提・実現したいこと
swift の開発を始めたばかりなので、わかっていないことも多いかと思いますが、ご了承ください。
以下の続きものの Qiita 記事を参考にテーブルビューの実装をしようとしていました。
swiftでwebAPIを呼び出してjsonデータを表示させる
APIで取得したデータをswiftのTableViewに表示する
前者の記事の内容は無事実装が完了し、APIでデータを取得することができました。
しかし、後者の記事で、テーブルに表示することができませんでした。
発生している問題・エラーメッセージ
テーブルビューが設定されている場所にセルが表示されていません。
記事の途中にも記載の非同期処理のタイムラグの問題かと思い、該当テキストとして定数を入れてみたのですが、
それでも表示されなかったため、テーブルビューの設定の問題かと思われます。
該当のソースコード
以下のように、ひとまず textLabel
と detailTextLabel
を文字定数で指定してみました。
callAPI()
は API を読んで標準出力しているだけなので、現段階では関係ないと考えています。
swift
1class RecordTableController: UIViewController, UITableViewDataSource, UITableViewDelegate { 2 @IBOutlet weak var tableView: UITableView! 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 callAPI() 7 } 8 9 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 10 return 1 11 } 12 13 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 14 let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "test") 15 cell.textLabel?.text = "testTextLabel" 16 cell.detailTextLabel?.text = "testDetailTextLabel" 17 18 return cell 19 } 20}
補足情報(FW/ツールのバージョンなど)
開発ツールは Xcode を使っています。
バージョンは以下の通りです。
Swift:5.2.2
Xcode:11.4.1
追記
4/21追記
TableView の紐付けは以下の通りになっております。
コンソールに状況を出力してみました
swift
1 override func viewDidLoad() { 2 super.viewDidLoad() 3 callAPI() 4 5 print("tableView: (String(describing: tableView))") 6 print("tableView.delegate: (String(describing: tableView.delegate))") 7 print("tableView.dataSource: (String(describing: tableView.dataSource))") 8 } 9 10 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 11 print("numberOfRowsInSection") 12 return 1 13 }
結果は以下の通りです。
tableView: Optional(<UITableView: 0x7fcb44879e00; frame = (0 88; 414 774); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x6000004d3690>; layer = <CALayer: 0x600000ad5f40>; contentOffset: {0, 0}; contentSize: {0, 0}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <breeding_recoder.RecordTableController: 0x7fcb42f06930>>) tableView.delegate: Optional(<breeding_recoder.RecordTableController: 0x7fcb42f06930>) tableView.dataSource: Optional(<breeding_recoder.RecordTableController: 0x7fcb42f06930>) numberOfRowsInSection numberOfRowsInSection numberOfRowsInSection numberOfRowsInSection
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 07:29
退会済みユーザー
2020/04/21 08:04 編集
2020/04/21 08:38
2020/04/21 08:44
退会済みユーザー
2020/04/21 08:47 編集
2020/04/21 08:52
退会済みユーザー
2020/04/21 08:56