2016-08-11 20 views
0

オーバーライドと派生データの削除、インデックスパス関数の行のセルの再書き込み、セルの可変構造の再書き込み、運がない。何か案が?彼らはUITableViewControllerをサブクラス化している場合cell for row at index pathようメソッドはスーパークラスのメソッドをオーバーライドしません - インデックスパスの行のセル

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

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

override func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "BPCCell") as! BPC_TableCell 
    cell.namelabel.text = BPC[indexPath.row].name 
    cell.addresslabel.text = BPC[indexPath.row].address 
    return cell 
} 

override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "BPCsegue" { 
     if let destViewControler = segue.destinationViewController as? BPCDetails { 
      let indexPath = self.tableView.indexPathForSelectedRow! 
      destViewControler.details = BPC[indexPath.row] 
     } 
    } 
} 
+0

を? – Harsh

+0

なぜ 'didSelectRowAtIndexPath'を使用できませんか? – jo3birdtalk

+0

テーブルビューコントローラをサブクラス化しているのですか、またはテーブルビューのデータソースを実装していますか? 「オーバーライド」を使用すると、サブクラスが示唆されます。あなたは何をしているのですか? – ghostatron

答えて

2

方法はoverrideキーワードを使用します。特定のメソッドをオーバーライドできないという問題がある場合は、適切なクラスをサブクラス化しない可能性が最も高いです。

+0

私はテーブルコントローラを持っており、通常このスーパークラスのエラーはありません。ただし、オーバーライドを削除すると、このエラーが発生します。//ユーザー/ジョン/デスクトップ/ The489/The489/BPC Table.swift:101:10:メソッド 'tableView(_:cellForRowAtIndexPath :) Objective-Cセレクタ' tableView:cellForRowAtIndexPath: 'メソッドとの競合' tableView(_:cellForRowAt :) 'スーパークラス' UITableViewController 'から同じObjective-Cセレクタで – jonpeter

関連する問題