Swift 2.1-对单个单元格使用UITableView

李成

我想要实现与以下示例图像相似的功能,在该示例图像中,我想在第一个屏幕上显示一个选定的或默认的类别,然后单击该按钮,它将移动到下一个屏幕,并带有其他类别选项可供选择。

在此示例中,它表示EntertainmentProject 01表示不同的数据实体(数据存储区),并且看起来它正在使用UITableView且每个UITableViewCell连接到不同的数据存储区。我首先想知道到目前为止我的分析是否正确。

就我而言,我只需要做那Entertainment部分,在下一个屏幕中,显示所有类别选项,例如示例中的第二个屏幕。做出选择后,第一个屏幕应反映第二个屏幕的选择。

UITableView是显示此单个字段(单元格)并选择另一个ViewController的正确选择吗?

我看到的所有演示应用程序示例都没有演示用于此目的的UITableView的用法,因此我不确定哪种情况是最好的选择。

在此处输入图片说明

Amrit Sidhu |

是的,UITableView是一个不错的选择。只需在“选择类别”类中创建一个委托方法。在Category类的UITableView的didSelectRowAtIndexPath方法上调用委托。然后将Expense类指定为类别类的委托。

基本上,单击娱乐后,您将执行连续搜索。一旦用户选择表格行,将向用户显示“选择类别控制器”。代表将被呼叫。在费用类中实现该委托。在实现中,只需用新值重新加载表即可。

更新:

您选择的类别类别将类似于:

import UIKit

protocol ChooseCategoryControllerDelegate: class {
func categoryController(controller: ChooseCategoryTableViewController,  didSelectCategory category: String)
}

class ChooseCategoryTableViewController: UITableViewController {

 let categories = ["category1","category2","category3","category4"]
var selectedcategory: String!
weak var delegate: ChooseCategoryControllerDelegate!

// MARK: - Table view data source
 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return categories.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
 let cell = tableView.dequeueReusableCellWithIdentifier("TypeCell", forIndexPath: indexPath) 

 cell.textLabel?.text = categories[indexPath.row]

 return cell
}

// MARK: - Table view delegate
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
 selectedcategory = categories[indexPath.row] as? String
 delegate.categoryController(self, didSelectCategory: selectedcategory)
}
}

在费用控制器中,在类声明之外添加以下代码:

extension ExpenseController: ChooseCategoryControllerDelegate {
func typesController(controller: ChooseCategoryTableViewController,  didSelectCategory category: String) {
let selectedCategory = category
dismissViewControllerAnimated(true, completion: nil)

//update your table category with the new category!!
//reload your table here
}
}

重新更新:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "CategorySegue" {

  let controller = segue.destinationViewController as! ChooseCategoryTableViewController

  controller.delegate = self
}
}

也将您的segue命名为“ CategorySegue”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Swift上创建UITableView单元格

Swift:清除UITableView单元格

UITableView不显示单元格(使用swift)

在Swift2中使用“ willSelectRowAtIndexPath”从单元格获取数据

静态UITableView,在Swift中创建具有动态高度的单个单元格

Swift 2-将选定的CollectionView单元格置于其他单元格的前面

如何在不重新加载UITableView或单个单元格[Swift]的情况下增加单行高度?

Swift-从UITableView删除单元格

使用自定义单元格在UITableView中展开UILabel时,Swift崩溃

在使用Swift单击UITableview单元格之前如何检查SearchController是否处于活动状态

在Swift中使用Audio Player更改UITableView中按钮单元格的播放暂停状态

复制单元格1的元素以匹配单元格2的长度

Swift-使用选定的单元格文本从静态UITableView进行Segue(prepareForSegue)

使用NSMutableArray数据填充UITableView自定义单元格-Swift

Swift:如何在动态UITableView中使用静态单元格

Swift:如何在1个tableView中具有2个不同的单元格

在Swift 2中删除UITableView中的所有单元格附件

在UITableView Swift中轻按单元格时,使用UIView创建弹出窗口

在UITableView(swift2)中选择单元格时更新/重新加载ViewController

Excel:CountIf(单元格1>单元格2和单元格3>单元格4)

如何检测Swift 2中单击的表格单元格

使用Swift 2在TableView上使用单元格

如何在单个 tableview 单元格中放置 2 个 coredata 属性。(swift4)

使用 Swift 更改 UITableView 的选定单元格

使用 2 个类/委托 Swift 从另一个单元格控制 UITableView 单元格的内容

我们如何在 uitableview swift 中使用不可见的单元格?

使用 openpyxl,嵌套列表开始写入/附加到单元格 A2 而不是 A1

使用 VLOOKUP 将 2 个单元格 sheet2 匹配到 sheet1 并返回第三个单元格

Swift - UITableView 单元格动画选择