title: Tableview cells data is changing when I scroll vertically in swift iOS
body: <p>I have developed an iOS app it has couple of tableviews. It works fine if I did not scroll, if i scroll tableview data inside cells data is changing pls make me perfect here.
  Here is the code below for first table which will have UISwitch and text.<a href="https://i.stack.imgur.com/DeAS7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/DeAS7.png" alt="enter image description here"></a> For reference pls watch video: <a href="https://drive.google.com/open?id=1hVHnAyGnQFrhvzLSoJjeMzG6wlfxoURm" rel="nofollow noreferrer">https://drive.google.com/open?id=1hVHnAyGnQFrhvzLSoJjeMzG6wlfxoURm</a></p>
  
  <pre><code>    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
     if let d = self.data {
         return d.count
     }
     return  0
  
  }
  
  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
  
      if let _ = cell {} else {
          cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
      }
      if let d = self.data {
          cell?.textLabel?.text = d[indexPath.row]
          let switchView = UISwitch(frame: .zero)
          switchView.setOn(self.isFolderIsAdded(folderName: d[indexPath.row]), animated: true)
          switchView.tag = indexPath.row // for detect which row switch Changed
          switchView.addTarget(self, action: #selector(self.switchChanged(_:)), for: .valueChanged)
          cell?.accessoryView = switchView
  
      }
      return cell!
  }
  
  func isFolderIsAdded(folderName:String) -&gt; Bool{
      for   val in listOfSelectedFolder{
          if(folderName == val ){
              return true
          }
      }
      return false;
  }
  
  @objc func switchChanged(_ sender : UISwitch!){
      if let d = self.data {
          if(sender.isOn){
              self.delegate?.selectedSubFolder(name: d[sender.tag])
             } else {
              self.delegate?.deleteFilesFromFolder(folderName: d[sender.tag])
          }
      }
  }
  </code></pre>
  
  <p>Here is the second table code which will have image view and text. I created custom cell named TableViewCell <a href="https://i.stack.imgur.com/WRNDS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WRNDS.png" alt="enter image description here"></a>. For reference pls watch video: <a href="https://drive.google.com/open?id=11snH5_henOadVCVqS9bL5SZRjcZF3vEU" rel="nofollow noreferrer">https://drive.google.com/open?id=11snH5_henOadVCVqS9bL5SZRjcZF3vEU</a></p>
  
  <pre><code>    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      let cell = tableViewContent.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! TableViewCell
      if let _ = contentModel[self.currentMode]{
          tempArr1 = appendFolderName(files: contentModel[self.currentMode]!, name: self.currentMode)!
  
      }
      if indexPath.row &lt; tempArr1.count {
          cell.setupCellData(text: tempArr1[indexPath.row])
      }else{
          if let res = self.getFilesFromSubFolder(contentName: self.currentMode, folderName: self.SelectedFolder) {
              cell.setupCellData(text: res[indexPath.row - tempArr1.count] )
  
          }
      }
      let bgColorView = UIView()
      bgColorView.backgroundColor = UIColor.gray
      cell.selectedBackgroundView = bgColorView
      return cell
  }
  
  func setupCellData(text:String) {
      let temarr = text.components(separatedBy: "@")
      let str =  temarr.last?.capitalized
      let strq = temarr.first?.lowercased()
      let newstr = strq?.components(separatedBy: "-")
      let val = newstr?.last
      let content = val!.lowercased() + "@" +  str!
      self.ContentLabel.text = content
      if ((self.ContentLabel.text?.contains("pps"))!||(self.ContentLabel.text?.contains("pptx"))!||(self.ContentLabel.text?.contains("ppt"))!){
          imageData.image = #imageLiteral(resourceName: "table_Content_ppt")
      }else if ((self.ContentLabel.text?.contains("mp4"))! || (self.ContentLabel.text?.contains("mp3"))!){
          imageData.image = #imageLiteral(resourceName: "table_Content")
      }else if (self.ContentLabel.text?.contains("pdf"))!{
          imageData.image = #imageLiteral(resourceName: "pdf_content")
      }else if (self.ContentLabel.text?.contains("url"))!{
          imageData.image = #imageLiteral(resourceName: "url_content")
      }else if (self.ContentLabel.text?.contains("exe"))!{
          imageData.image = #imageLiteral(resourceName: "application_content")
      }else if (self.ContentLabel.text?.contains("doc"))!{
          imageData.image = #imageLiteral(resourceName: "word_content")
      }else if (self.ContentLabel.text?.contains("bat"))!{
          imageData.image = #imageLiteral(resourceName: "cmd")
      }
      else if (self.ContentLabel.text?.contains("lnk"))!{
          imageData.image = #imageLiteral(resourceName: "cmd")
      }
      else if ((self.ContentLabel.text?.contains("png"))! || (self.ContentLabel.text?.contains("jpg"))! || (self.ContentLabel.text?.contains("jpeg"))! || (self.ContentLabel.text?.contains("psd"))! || (self.ContentLabel.text?.contains("tiff"))! || (self.ContentLabel.text?.contains("gif"))!) {
  
          imageData.image = #imageLiteral(resourceName: "img")
  
      }else{
          imageData.image = nil
  
      }
  
  }
  </code></pre>
  
  <p>I have added prepareForReuse()method  in tableview cell class but still result is same content is changed after scroll.</p>
  
  <pre><code>    override func prepareForReuse() {
      super.prepareForReuse()
      // Clear all content based views and their actions here
       imageData.image = nil
      ContentLabel.text = ""
  }
  </code></pre>