【问题标题】:Save a UITextField into a UICollectionViewCell将 UITextField 保存到 UICollectionViewCell
【发布时间】:2016-03-04 04:16:43
【问题描述】:

我有一个允许用户创建类别的应用。将出现一个带有 UITextField 的保存屏幕。虽然,我不知道如何保存用户的条目,并允许将新的 UICollectionViewCell 添加到当前 UICollectionView 中,其中包含用户键入的 UITextField 单词。谢谢!!这也在 Swift 中。这将在 UITableView 中使用:衣服.name = self.nameTextField.text,但我如何将其转换为 UICollectionView? **衣服是一个变量

【问题讨论】:

    标签: ios swift uicollectionview


    【解决方案1】:

    您的集合视图有一个数据源,您最初在其中拥有单元格的模型。在您的情况下,它可能是一个数组。集合视图查看此数据源并根据此数据源中包含的条目返回单元格。

    我想要了解的是以下内容:

    为了显示新创建的单元格,您需要通过添加新单元格的“规范”来更新数据源(我将其称为集合视图所遵循的“蓝图规范”)(我想我'我以比实际更复杂的方式措辞)。这是一个示例(如果我们假设您的数据源是一个数组):

    categoryArray.append(CategoryModel(title: yourTextField.text)) // update the data source
    

    对数据源进行更改后,您可以告诉集合视图重新加载它的数据:

    collectionView.reloadData()
    

    这将“解析”数据源以重新显示单元格。

    如果有什么不清楚的地方请告诉我。

    编辑

    关于你的评论——假设你使用UINavigationController——,你可以实现这样显示标题:

    您可能正在使用此方法转到下一个视图控制器:

    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    
        let category = categoriesArray[indexPath.row]
        let detailVC = DetailViewController()
        detailVC.title = category.title // your title
        self.navigationController?.pushViewController(detailVC, animated: true, completion: nil)
    
    }
    

    或者,在您的DetailViewController 中,您可以这样做:

    class DetailViewController : UIViewController{
    
        var category : Category!
    
        override func viewWillAppear(){
            super.viewWillAppear()
            self.title = self.category.title
    
        }
    
    }
    

    【讨论】:

    • 当我点击单元格时,如何让 textField 条目显示在下一页的导航栏中?
    • @SkylarBjörn 更新了我的答案。将 self.pushViewController(...) 替换为 self.navigationController?.pushViewController(...)。对不起,我把代码写出来了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多