56171


**自作したカスタムセルを自分の画面に表示したいのですが表示されなのは何故なのでしょうか。**

[![画像の説明をここに入力](https://i.stack.imgur.com/6mhOl.png)](https://i.stack.imgur.com/6mhOl.png)  
[![画像の説明をここに入力](https://i.stack.imgur.com/UGXX6.png)](https://i.stack.imgur.com/UGXX6.png)  
[![画像の説明をここに入力](https://i.stack.imgur.com/JxZ5C.png)](https://i.stack.imgur.com/JxZ5C.png)

[code]

    class TableViewSkillController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
    
        @IBOutlet weak var myTableView: UITableView!
        @IBOutlet weak var addSkill: UIBarButtonItem!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
        self.myTableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "TableViewCell")
    
        }
    
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 1
        }
    
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
           let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell") as! TableViewCell
    
            cell.skillName.text = "〇〇〇〇〇〇"
            cell.goalCountNumber.text = "20 : 00"
    
            return cell
        }
    
        @IBAction func addSkillButton(_ sender: UIBarButtonItem) {
        }
    
    
    }
    
    
[/code]

[code]

    import UIKit
    
    class TableViewCell: UITableViewCell {
    
        @IBOutlet weak var skillName: UILabel!
        @IBOutlet weak var goalCountNumber: UILabel!
    
    
        override func awakeFromNib() {
            super.awakeFromNib()
            // Initialization code
        }
    
    
    
    
        @IBAction func ToEachSkillButton(_ sender: Any) {
    
    
        }
    
    
    }
    
[/code]

↑↑これからコードの中身を入れるつもりです。


CC BY-SA 4.0
2019-06-27T12:43:40.230
56147
2019-06-28T03:44:33.663
34541
question
swift xcode
tableViewにカスタムセルを表示したい。


`TableViewSkillController`クラスの中、

[code]

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
       let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell") as! TableViewCell
    
       cell.skillName.text = "〇〇〇〇〇〇"
       cell.goalCountNumber.text = "20 : 00"
    
       return cell
    }
    
[/code]

3行目を

[code]

    let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell
    
[/code]

と書き換えてみてください。  
引数に`for:
indexPath`がついているほうのメソッドの返り値が非オプショナル型（`UITableViewCell`）であるのに対し、ついてないほうのメソッドの返り値がオプショナル型（`UITableViewCell?`）であることに注目してください。


CC BY-SA 4.0
2019-06-28T00:11:46.040
56162
2019-06-28T03:39:27.900
2019-06-28T03:39:27.900
18540
18540
56147
answer


解決しました。

[![画像の説明をここに入力](https://i.stack.imgur.com/yyw4w.png)](https://i.stack.imgur.com/yyw4w.png)

ですがそもそも

[code]

     self.myTableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "TableViewCell")
    
    
[/code]

の`nibName:` の`TableViewCell` と `forCellReuseIdentifier:` の `"TableViewCell"`
が同じ名前に足らない様に上の画像の **赤丸枠** 内の identifier
の名前を違う名前に設定することが大切な様に思いました。(例えばcustomTableViewCellにするなど)

そうすると

[code]

     self.myTableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "customTableViewCell")
    
    
[/code]

となり

[code]

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
           let cell = tableView.dequeueReusableCell(withIdentifier: "customTableViewCell") as! TableViewCell
    
            return cell
        }
    
    
[/code]

となるのでわかりやすくこの様なことに悩まづにすみました。


CC BY-SA 4.0
2019-06-28T03:44:33.663
56171
2019-06-28T03:44:33.663
34541
56147
answer