微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设备方向更改时,ULTextField值消失

如何解决设备方向更改时,ULTextField值消失

我正在使用Xibs在UITableViewController内加载单元格,并且由于某种原因,一旦设备方向发生变化,单元格就会重新加载,并且所有输入的UITextField值都会消失。有没有办法防止这种或更好的方法解决这个价值消失的问题。

我的行单元格如下

override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = configCellView(index: indexPath.row) as? UITableViewCell

    cell?.selectionStyle = .none
    return cell ?? UITableViewCell()
}

我的configCellView方法如下

   private func configCellView(index: Int) -> UIView? {
    switch formType {
    //This LOG form works fine even device orientation changes 
    case .LOG:
        if let cell = getXibFile(cellType: LogFormTableViewCell.self,cellIdenifier: Constants.LOGFORM_CELL_IDENTIFIER) {
        
        return cell

        }

  //This is where the issue is 
    case .PROSPECT:
        switch index {
            case 0:
                let cell = getXibFile(cellType: LogFormTableViewCell.self,cellIdenifier: Constants.LOGFORM_CELL_IDENTIFIER)

                return cell
            default:
               
               
                    if let cell = getXibFile(cellType: ContactFormTableViewCell.self,cellIdenifier: Constants.CONTACTFORM_CELL_IDENTIFIER){
                                                 
                  
                     return cell
                
                    }
        }

     }



 func getXibFile<T: UITableViewCell>(cellType: T.Type,cellIdenifier: String) -> T? {
    return Bundle.main.loadNibNamed(cellIdenifier,owner: self,options: nil)?.first as? T
 }

解决方法

您当前正在做的是每次重新加载tableView时都创建一个新单元格,不建议这样做。您必须dequeueReusableCell(withIdentifier:),以便可以重用单元,这在内存方面更加有效。

关于数据,您可能希望有一个数组来存储每次调用cellForRow时的数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。