Swift TableView传递选定的Cell

时间:2016-03-31 20:30:24

标签: ios swift uitableview

我有两个TablewViewControllersListTableViewController,其中包含我的项目列表和SortTableViewController,其中我存储了ListTableView的排序选项。我需要找到一种方法来突出显示活动(如果用户单击一个排序选项)排序选项(CellSortTableViewController loads.Any想法如何做到这一点?

Screenshot

2 个答案:

答案 0 :(得分:0)

你可以尝试这个

class SortTableViewController: UITableViewController {

    var highlightedIndexPath: NSIndexPath? //TODO: populate this

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = //TODO: populate this
        cell.textLabel?.textColor = indexPath == highlightedIndexPath ? .redColor() : .blackColor()
        return cell
    }
}

答案 1 :(得分:0)

如果您需要保留排序选项,可以试试这个。 使用NSUserDefaults存储选定的行索引(假设您的排序选项列表已修复)

    class SortTableViewController : UITableViewController {

        let selectedRowIdx = NSUserDefaults.standardUserDefaults().integerForKey("PLACE_YOUR_KEY_HERE")

        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

            let cell = // your implementation here

            if indexPath.row == selectedRowIdx {
                cell.textLabel?.textColor = UIColor.redColor()
            }
        }

        override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

            NSUserDefaults.standardUserDefaults().setInteger(indexPath.row, forKey: "PLACE_YOUR_KEY_HERE")
        }
    }