0
我試圖重新加載我的tableview,而在UITextField中鍵入數據。當我輸入一些時間重新加載動作將工作,但是當我稍後刪除一些時間重新加載動作不起作用。這裏是我的代碼:TableView Reloaddata不工作當編輯更改的值
@IBOutlet weak var showErrorlbl: UILabel!
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchforText: UITextField!
@IBOutlet weak var searchforDate: UITextField!
@IBOutlet weak var pickerView: UIDatePicker!
var dispatchArr = [String]()
var dispatch: String = String()
var dismantl: String = String()
var dismantal: [String] = [String]()
var totalSqft: String = String()
var totalSQFT: [String] = [String]()
var marktPerson: [String] = [String]()
var showNameArr: [String] = [String]()
var showName = String()
var number = [String]()
var day = Int()
var month = Int()
var year = Int()
var popup:UIView!
@IBAction func datePicker(_ sender: Any)
{
if pickerView.isHidden == true
{
pickerView.isHidden = false
}else
{
pickerView.isHidden = true
tableView.reloadData()
for i in 0 ..< passAllDetails.count
{
dispatch = (passAllDetails[i]["Start_Date"] as! String)
if dispatch.contains(searchforDate.text!)
{
showErrorlbl.isHidden = true
dispatchArr.append(showName)
dismantl = (passAllDetails[i]["Dismantel_Date"] as! String)
totalSqft = (passAllDetails[i]["Board_Size"] as! String)
let markPerson = (passAllDetails[i]["Marketing_Person_Name"] as! String)
showName = (passAllDetails[i]["Show_Name"] as! String)
showNameArr.append(showName)
number.append(dispatch)
dismantal.append(dismantl)
totalSQFT.append(totalSqft)
marktPerson.append(markPerson)
}
}
}
DispatchQueue.main.async(execute: {()->() in
self.tableView.reloadData()
})
//tableView.reloadData()
}
public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool
{
searchforDate.text = ""
searchforText.text = ""
return true
}
@IBAction func homeButton(_ sender: Any)
{
self.performSegue(withIdentifier: "searchsegue", sender: self)
}
override func viewDidLoad()
{
searchforDate.delegate = self
searchforText.delegate = self
searchforText.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
searchforDate.addTarget(self, action: #selector(datePicker(_:)), for: .editingChanged)
pickerView.isHidden = false
pickerView.timeZone = NSTimeZone.local
pickerView.backgroundColor = UIColor.gray
//Add an event to call onDidChangeDate function when value is changed.
pickerView.addTarget(self, action: #selector(SearchViewController.datePickerValueChanged(_:)), for: .valueChanged)
super.viewDidLoad()
//Do any additional setup after loading the view.
}
//Implement in DidChange function
func textFieldDidChange(_ textField: UITextField) {
for i in 0 ..< passAllDetails.count
{
showName = (passAllDetails[i]["Show_Name"] as! String)
if showName.contains(searchforText.text!)
{
showErrorlbl.isHidden = true
showNameArr.append(showName)
dispatch = (passAllDetails[i]["Dispatch_Date"] as! String)
dismantl = (passAllDetails[i]["Dismantel_Date"] as! String)
totalSqft = (passAllDetails[i]["Board_Size"] as! String)
let markPerson = (passAllDetails[i]["Marketing_Person_Name"] as! String)
number.append(dispatch)
dismantal.append(dismantl)
totalSQFT.append(totalSqft)
marktPerson.append(markPerson)
//tableView.reloadData()
}
}
DispatchQueue.main.async(execute: {()->() in
self.tableView.reloadData()
}) }
func datePickerValueChanged(_ sender: UIDatePicker){
let componenets = Calendar.current.dateComponents([.year, .month, .day], from: sender.date)
day = componenets.day!
month = componenets.month!
year = componenets.year!
searchforDate.text = ("\(day)-\(month)-\(year)")
}
override func viewWillAppear(_ animated: Bool) {
pickerView.isHidden = true
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 1
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
if searchforDate.text == ""
{
return showNameArr.count
}
else if searchforText.text == ""
{
return dispatchArr.count
}
return 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! SearchCustomCell
cell.dispatchDateLbl.text = number[indexPath.row]
cell.marketingPersonName.text = marktPerson[indexPath.row]
cell.showNameLabel.text = showNameArr[indexPath.row]
cell.totalSQFTTextview.text = totalSQFT[indexPath.row]
cell.dismantlDateLbl.text = dismantal[indexPath.row]
return cell
}
它越來越錯誤兄弟 – sathiyaraj
份額錯誤信息 – KKRocks
值類型的「[字符串]」沒有成員「removeAllData」 – sathiyaraj