Я пытаюсь создать табличное представление, которое может изменить данные внутри него, в зависимости от того, какой бренд был нажат раньше, например, если я нажму на марку Acura, табличное представление затем изменит массив на Acura массив, и когда щелкнули модель автомобиля в Acura, он покажет год автомобиля. проблема с моим кодом ниже заключается в том, что при нажатии на модель бренда автомобиля выбирает одновременно CARBRAND и CARMODEL, и он показывает CAR YEAR. это кажется TableView просто продолжайте выбирать строку, я щелкнулсоздать переменный источник данных для UItableview (с помощью viewcontroller)
здесь
затем держать кнопку вплоть до автомобиля года как автомобиль марка и модель автомобиля уже щелкнули с этой точки зрения.
Как я остановил табличное представление, щелкнув дважды. класс jobtypeViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { вар thetitle = ""
// car make
var carbrand = ["Acura","Aston_Martin","AUDI","Bentley","BMW","Buick","Cadillac","Chevrolet","Dodge","FIAT","Ford","Genesis","GMC","Honda","Hyundai","Infinit","Jaguar","JEEP","KIA","Landrover","Lexus","Lincoln","Mazda","MercedezBenz","MINI","Mitsubishi","Nissan","Porsche","Scion","Subaru","Suzuki","Toyota","Volkswagen","Volvo"]
// car model
var Acura = ["ILX","MDX","NSX","RDX","RLX","RLX Sport Hybrid","TLX"]
// car year
var caryear = ["1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017"]
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch thetitle {
case "Acura":
return Acura.count
case "brand":
return carbrand.count
case "model":
return Honda.count
case "year":
return caryear.count
default:
return 0
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
switch thetitle {
case "Acura":
cell.textLabel?.text = Acura[indexPath.row]
cell.textLabel?.textAlignment = .Center
case "brand":
cell.textLabel?.text = carbrand[indexPath.row]
cell.textLabel?.textAlignment = .Center
case "model":
cell.textLabel?.text = Honda[indexPath.row]
cell.textLabel?.textAlignment = .Center
case "year":
cell.textLabel?.text = caryear[indexPath.row]
cell.textLabel?.textAlignment = .Center
default:
cell.textLabel?.text = ""
}
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if thetitle == "automotive"{
switch carbrand[indexPath.row]{
case "Acura":
print(carbrand[indexPath.row])
tableviewz.hidden = true
thetitle = "Acura"
tableviewz.deselectRowAtIndexPath(tableviewz.indexPathForSelectedRow!, animated: true)
tableviewz.reloadData()
default:
print("hello")
}
}
if thetitle == "Acura"{
switch Acura[indexPath.row]{
case "ILX":
print(Acura[indexPath.row])
tableviewz.hidden = true
thetitle = "year"
tableviewz.reloadData()
tableviewz.hidden = false
default:
print("hello")
}
}
}
Я скопировал код, и как-то он возвращает пустое после того, как я нажму acura. – Alan
@Alan Вероятно, потому что у вас есть 'tableviewz.hidden = true'. – pbasdf
вы правы, вы спасатель жизни. Спасибо большое – Alan