我想在 TableViewController 中使用的 UITableViewController 中使用我的自定義單元格。我注冊了自定義單元格并在 cellForRowAt 方法中使用它。單元是在情節提要中“創建”的。控制器的所有類都已設定,識別符號也已設定,自定義單元格也已選擇類和識別符號。但是當我啟動我的應用程式時,它會顯示默認的空單元格。這是我的代碼:
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let beersList = BeersListModuleBuilder.createBeersListView()
let beersListNavController = UINavigationController(rootViewController: beersList)
beersListNavController.tabBarItem = UITabBarItem(title: "All beers", image: nil, tag: 1)
let favoriteBeersList = UIViewController()
let favoriteBeersListNavController = UINavigationController(rootViewController: favoriteBeersList)
favoriteBeersListNavController.tabBarItem = UITabBarItem(title: "Favorites", image: nil, tag: 2)
self.viewControllers = [beersListNavController, favoriteBeersListNavController]
}
}
class BeersListTableViewController: UITableViewController{
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(BeerCell.self, forCellReuseIdentifier: "BeerCell")
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "BeerCell", for: indexPath) as! BeerCell
cell.beerName?.text = "beer.name"
cell.beerABV?.text = "beer.abv"
cell.addToFavoritesButton?.setImage(UIImage(systemName:"star"), for: .normal)
return cell
}
}
class BeerCell: UITableViewCell {
@IBOutlet var beerName: UILabel!
@IBOutlet var beerABV: UILabel!
@IBOutlet var addToFavoritesButton: UIButton!
}




GitHub 倉庫:https ://github.com/IgorShevtshenko/BeerList
uj5u.com熱心網友回復:
只需洗掉此行:
self.tableView.register(BeerCell.self, forCellReuseIdentifier: "BeerCell")
當您在故事板場景中使用原型單元時,故事板會根據重用識別符號為您注冊類。僅當您使用自定義類或 nib 時才需要注冊您的單元格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410273.html
標籤:
