하나의 UITableViewController
에서 시작하는 매우 간단한 iOS 앱을 만들고 각 셀을 클릭하면 다른 데이터를 UIViewController
에 푸시합니다. 셀에 자리 표시 자 정보를 추가했지만 시뮬레이터를 실행하면 빈 화면 만 나타납니다. 아래 사진과 코드를 첨부합니다. 나는 몇 가지 반복되는 코드를 가지고있는 것처럼이 모든 보면 UITableViewController 시뮬레이터에서 흰색 빈 화면 표시
class TableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func backBtn(_ sender: AnyObject) {
dismiss(animated: true, completion: nil);
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 0
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
}
class ViewController: UIViewController, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
var names = ["Manner 1", "Manner 2", "Manner 3", "Manner 4", "Manner 6", "Manner 7", "Manner 8"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 8
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath) as! Manner2Cell
cell.name.text = names[indexPath.row]
return cell
}
}
//Manner2Cell actually refers to the first cell. I know I know bad naming convention.
class Manner2Cell: UITableViewCell {
@IBOutlet weak var name: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
것 같습니다. 나는 이것이 쉬운 수정 인 것처럼 느낀다. 그러나 나는 단지 그것을 이해할 수 없다!
몇 가지 사항을 확인해야합니다. y1) numberOfSections가 0을 반환하지 않아야합니다. 이 옵션을 생략하면 기본적으로 1이 반환되며 이는 아마도 필요한 것입니다. 2) 스토리 보드에서 UITableView 데이터 소스를 올바르게 설정하고 위임해야합니다. 도움이 필요하면 "storyboard set tableview delegate and data source"를 검색하십시오. 3) NumberOfRowsInSection은 names.count를 반환해야하며 8로 하드 코딩되지 않아야합니다. – xdeleon