Đang cố gắng giải quyết một vài cảnh trong ứng dụng của tôi, tôi không thể nhận được tableViews hoạt động như mong muốn.Lỗi với Chế độ xem bảng tĩnh
Im thực hiện cài đặt như tableView nơi người dùng chọn giữa hai cài đặt có thể. Mỗi tùy chọn dẫn đến tableView mới, nơi người dùng phải chọn một trong các tùy chọn có sẵn. Khi người dùng đã chọn một nhãn, nhãn trong cảnh đầu tiên sẽ hiển thị giá trị được chọn (được lưu trữ dưới dạng NSUserDefaults). Vì vậy, nếu Im không nhầm lẫn điều này có thể đạt được với 3 tableViews tĩnh. Các mã sau đây là cách Im cố gắng để làm điều đó:
thiết lập ban đầu xem điều khiển:
class SettingsVC2: UITableViewController{
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.section == 0{
let cell = tableView.dequeueReusableCellWithIdentifier("office_cell", forIndexPath: indexPath)
cell.textLabel?.text = "Select your office"
return cell
}
else {
let cell = tableView.dequeueReusableCellWithIdentifier("dept_cell", forIndexPath: indexPath)
cell.textLabel?.text = "Select your department"
return cell
}
Một trong các thiết lập tableViews:
class SettingsDepartmentTVC: UITableViewController{
let departamentos: [String] = ["Sales", "Pre-Sales", "General Administration", "Customer Service", "Profesional Services", "Regionales"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return departamentos.count
}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("department_cell", forIndexPath: indexPath)
cell.textLabel?.text = self.departamentos[indexPath.row]
return cell
}
}
Tôi tin rằng tất cả datasources và các đại biểu là cuốn hút ngay và UIKit được nhập ngay cả khi không được hiển thị.
erros Im nhận: thất bại
Assertion trong - [UITableView dequeueReusableCellWithIdentifier: forIndexPath:]
Chấm dứt ứng dụng do ngoại lệ uncaught 'NSInternalInconsistencyException', lý do: 'không thể dequeue một tế bào với số nhận dạng office_cell - phải đăng ký một ngòi hoặc một lớp cho số nhận dạng hoặc kết nối một ô mẫu trong bảng phân cảnh
Đây là phương pháp mà tôi cố gắng để cư tableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
-> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("CommentsRowTVC", forIndexPath: indexPath) as! CommentsRowTVC
let single_comment = self.AOS[indexPath.row]
cell.titulo_comentario?.text = single_comment.titulo_comment
cell.cuerpo_comentario?.text = single_comment.cuerpo_comment
cell.fecha_comentario?.text = single_comment.fecha_comment
return cell
}
class CommentsRowTVC: UITableViewCell {
@IBOutlet weak var titulo_comentario: UILabel!
@IBOutlet weak var cuerpo_comentario: UILabel!
@IBOutlet weak var fecha_comentario: 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
}
}
Dưới đây là các kết nối thanh tra cho UIViewController nơi bàn là:
Và cái này cho UIViewCellController:
lỗi đến thời điểm này:
UIView tableView: numberOfRowsInSection: chọn không được công nhận gửi đến dụ
Chấm dứt ứng dụng do ngoại lệ uncaught NSInvalidArgumentException, lý do: [UIView tableView: numberOfRowsInSection:] : bộ chọn không được công nhận được gửi đến ví dụ
bạn có thể thêm một ảnh chụp màn hình Storyboard? – adolfosrs
bạn đã thêm bộ thụt lề vào bảng phân cảnh của mình chưa? – adolfosrs
@PabloDuque bạn nên đặt một điểm ngắt và thử bước qua mã của bạn, xem nơi nó phá vỡ và báo cáo lại –