我已经创建了动态表单,用户输入了多个表单,并为此创建了表格单元格。提交所有表单后,所有细节都应显示在excel formate中,因为我已创建集合视图,但问题是唯一选中的单元格值正在打印。如何将数据从所有TableViewCell传递到Swift3中的CollectionView
class tableViewController: UIViewController, UITableViewDataSource,UITableViewDelegate {
@IBOutlet var nameText: UITextField!
@IBOutlet var tableView: UITableView!
var shop = Int()
var namevalue = [String]()
var phoneValue = String()
var emailValue = String()
var genderValue = String()
var isSelectAll = false;
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return shop
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let k = indexPath.row+1
let j:String? = String(k)
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! myTableViewCell
if(isSelectAll==true)
{
cell.backgroundColor = UIColor.blue;
}
else
{
cell.backgroundColor = UIColor.white;
}
cell.formNoLabel.text = j
for _ in 0..<shop{
print(cell.nameLabel.text as Any)
}
if indexPath.section == 0{
if indexPath.row == 0{
print(cell.emailText.text as Any)
}
}
for shop in 0..<(indexPath.count){
let thisPath = indexPath[shop]
print(thisPath as Any)
}
return cell
} public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow //optional, to get from any UIButton for example
for _ in 0..<shop {
let currentCell = tableView.cellForRow(at: indexPath!)! as! myTableViewCell
print(currentCell.self.nameText.text as Any)
}
let currentCell = tableView.cellForRow(at: indexPath!)! as! myTableViewCell
print(currentCell.self.emailText.text as Any)
namevalue.append(currentCell.nameText.text!)
// namevalue = [currentCell.nameText.text!]
phoneValue = currentCell.phoneText.text!
emailValue = currentCell.emailText.text!
genderValue = currentCell.genderText.text!
@IBAction func submitButton(_ sender: Any) {
let mainController : CollectionViewController = CollectionViewController(nibName: "CollectionViewController", bundle: nil)
mainController.getShop = shop+1
mainController.getName = namevalue
mainController.getPhone = phoneValue
mainController.getEmail = emailValue
mainController.getGender = genderValue
self.navigationController?.pushViewController(mainController, animated: true)
// self.present(mainController, animated: true, completion: nil)
}
@IBAction func Select(_ sender: Any) {
isSelectAll = true;//on button action
print(namevalue)
self.tableView.reloadData()//on button action
}
}
class CollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate**
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 {
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
}
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
}
}
}
说真的。你应该保持你的代码清洁。 – javimuu
@javimuu我认识的人!因为我有很多方法可以解决这个问题。你能帮我吗?我可以寄给你所有的代码。 – ViralRathod