将表单数据发送到CollectionView

时间:2017-03-16 10:41:13

标签: ios uitableview swift3 uicollectionview

我创建了动态表单,用户输入表单数量,并为此创建了表格单元格。提交所有表格后,所有细节都应显示在excel formate中,因为我已经创建了集合视图,但问题是唯一选定的单元格值是打印。 请看这是我在我的项目中使用的github代码 https://github.com/brightec/CustomCollectionViewLayout

tableViewController.swift

struct Information {
var name: String
var phone: String
var email: String
var gender: String

init(name: String, phone: String, email: String, gender: String) {
    self.name = name
    self.phone = phone
    self.gender = gender
    self.email = email
}
         import UIKit
class tableViewController: UIViewController, UITableViewDataSource,UITableViewDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
 }

@IBOutlet var tableView: UITableView!
@IBOutlet var nameText: UITextField!
var name: String = ""
var phone: String = ""
var email: String = ""
var gender: String = ""
var shop = Int()
var namevalue = String()
var phoneValue = String()
    var emailValue = String()
    var genderValue = String()

var formData: [Information] = []

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{
    return shop
}

public func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    let shop1 = [shop]

    return "Section \(shop1[section]))"
}

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

{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! myTableViewCell

    if indexPath.section == 0{
        if indexPath.row == 0{
            print("THis is print 1",cell.emailText.text as Any)

        }
    }
    name =  cell.nameText.text!
    phone =  cell.phoneText.text!
    email =  cell.emailText.text!
    gender =  cell.genderText.text!
    print("This is name",name)

    let data = Information(name: name, phone: phone, email: email, gender: gender)

    formData.append(data)
  return cell

}

  public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

for _ in 0..<shop {

    print("THis is print 3",shop)


}


let indexPath = tableView.indexPathForSelectedRow //optional, to get from any UIButton for example

let currentCell = tableView.cellForRow(at: indexPath!)! as! myTableViewCell
name =  currentCell.nameText.text!
    phone =  currentCell.phoneText.text!
    email =  currentCell.emailText.text!
    gender =  currentCell.genderText.text!
 print("Hello hello3",formData)
 print("THis is print 4",currentCell.self.emailText.text as Any)

   tableView.reloadData()
}

@IBAction func submitButton(_ sender: Any) {

tableView.reloadData()

 print("THis is print 6",formData)

    let mainController : CollectionViewController = CollectionViewController(nibName: "CollectionViewController", bundle: nil)
    mainController.getShop = shop+1
    mainController.formData = formData
//         mainController.getPhone = phone
//         mainController.getEmail = email
//         mainController.getGender = gender

      self.navigationController?.pushViewController(mainController, animated: true)}}

CollectionViewController.swift

import UIKit

class CollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
var formData: [Information] = []

let dateCellIdentifier = "DateCellIdentifier"
let contentCellIdentifier = "ContentCellIdentifier"
@IBOutlet weak var collectionView: UICollectionView!

var getShop = Int()
var getName = String()
var getPhone = String()
var getEmail = String()
var getGender = String()

override func viewDidLoad() {
    super.viewDidLoad()

    self.collectionView .register(UINib(nibName: "DateCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: dateCellIdentifier)
    self.collectionView .register(UINib(nibName: "ContentCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: contentCellIdentifier)
}


// MARK - UICollectionViewDataSource

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return getShop
}


func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 5
}


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    for element in formData{
        print("This is element",element.name)

    }
    if indexPath.section == 0 {
        if indexPath.row == 0 {
            let dateCell : DateCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: dateCellIdentifier, for: indexPath) as! DateCollectionViewCell
            dateCell.backgroundColor = UIColor.white
            dateCell.dateLabel.font = UIFont.systemFont(ofSize: 13)
            dateCell.dateLabel.textColor = UIColor.black
            dateCell.dateLabel.text = "Number"

            return dateCell
        }
        if indexPath.row == 1 {
            let dateCell : DateCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: dateCellIdentifier, for: indexPath) as! DateCollectionViewCell
            dateCell.backgroundColor = UIColor.white
            dateCell.dateLabel.font = UIFont.systemFont(ofSize: 13)
            dateCell.dateLabel.textColor = UIColor.black
            dateCell.dateLabel.text = "Name"

            return dateCell
        }
        if indexPath.row == 2 {
            let dateCell : DateCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: dateCellIdentifier, for: indexPath) as! DateCollectionViewCell
            dateCell.backgroundColor = UIColor.white
            dateCell.dateLabel.font = UIFont.systemFont(ofSize: 13)
            dateCell.dateLabel.textColor = UIColor.black
            dateCell.dateLabel.text = "Phone"

            return dateCell
        }
        if indexPath.row == 3 {
            let dateCell : DateCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: dateCellIdentifier, for: indexPath) as! DateCollectionViewCell
            dateCell.backgroundColor = UIColor.white
            dateCell.dateLabel.font = UIFont.systemFont(ofSize: 13)
            dateCell.dateLabel.textColor = UIColor.black
            dateCell.dateLabel.text = "Email"

            return dateCell
        }else {
            let contentCell : ContentCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: contentCellIdentifier, for: indexPath) as! ContentCollectionViewCell
            contentCell.contentLabel.font = UIFont.systemFont(ofSize: 13)
            contentCell.contentLabel.textColor = UIColor.black
            contentCell.contentLabel.text = "Gender"

            if indexPath.section % 2 != 0 {
                contentCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
            } else {
                contentCell.backgroundColor = UIColor.white
            }

            return contentCell
        }
    } else {
        if indexPath.row == 0 {
            let dateCell : DateCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: dateCellIdentifier, for: indexPath) as! DateCollectionViewCell
            dateCell.dateLabel.font = UIFont.systemFont(ofSize: 13)
            dateCell.dateLabel.textColor = UIColor.black
            dateCell.dateLabel.text = String(indexPath.section)
            if indexPath.section % 2 != 0 {
                dateCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
            } else {
                dateCell.backgroundColor = UIColor.white
            }

            return dateCell
        }
           else if indexPath.row == 1
            {
                let contentCell : ContentCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: contentCellIdentifier, for: indexPath) as! ContentCollectionViewCell
                contentCell.contentLabel.font = UIFont.systemFont(ofSize: 13)
                contentCell.contentLabel.textColor = UIColor.black
                contentCell.contentLabel.text = getName
                if indexPath.section % 2 != 0 {
                    contentCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
                } else {
                    contentCell.backgroundColor = UIColor.white
                }

                return contentCell
            }

        else if indexPath.row == 2
        {
            let contentCell : ContentCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: contentCellIdentifier, for: indexPath) as! ContentCollectionViewCell
            contentCell.contentLabel.font = UIFont.systemFont(ofSize: 13)
            contentCell.contentLabel.textColor = UIColor.black
            contentCell.contentLabel.text = getPhone
            if indexPath.section % 2 != 0 {
                contentCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
            } else {
                contentCell.backgroundColor = UIColor.white
            }

            return contentCell
        }
        else if indexPath.row == 3
        {
            let contentCell : ContentCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: contentCellIdentifier, for: indexPath) as! ContentCollectionViewCell
            contentCell.contentLabel.font = UIFont.systemFont(ofSize: 13)
            contentCell.contentLabel.textColor = UIColor.black
            contentCell.contentLabel.text = getEmail
            if indexPath.section % 2 != 0 {
                contentCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
            } else {
                contentCell.backgroundColor = UIColor.white
            }

            return contentCell
        }
                    else {
            let contentCell : ContentCollectionViewCell = collectionView .dequeueReusableCell(withReuseIdentifier: contentCellIdentifier, for: indexPath) as! ContentCollectionViewCell
            contentCell.contentLabel.font = UIFont.systemFont(ofSize: 13)
            contentCell.contentLabel.textColor = UIColor.black
            contentCell.contentLabel.text = getGender
            if indexPath.section % 2 != 0 {
                contentCell.backgroundColor = UIColor(white: 242/255.0, alpha: 1.0)
            } else {
                contentCell.backgroundColor = UIColor.white
            }

            return contentCell
     }}}}

1. I have entered how many forms i want

2. no of forms displayed and i entered all different values for all different forms But what happening is only one form details are printing

0 个答案:

没有答案