2015-12-05 3 views
-3

импорт UIKitКак я отменить выбранный мой флажок в ViewController

класс RightSideViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {

var tableView: UITableView! 
var textField: UITextField! 
var menuItems:[String]=["A","B","C","All"]; 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

// Dispose любых ресурсов, которые могут быть воссозданы. }

@available(iOS 2.0, *) 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
{ 
    return menuItems.count; 
} 

@available(iOS 2.0, *) 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 

    let leftCell = tableView.dequeueReusableCellWithIdentifier("RightCell", forIndexPath: indexPath) as! RightSideTableViewCell 
    leftCell.projectsName.text = self.menuItems[indexPath.row] 


    return leftCell 
} 


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
{ 
    let mySelectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 


    // when find checkmark then unchecked 

    if mySelectedCell.accessoryType == .Checkmark 
    { 
     mySelectedCell.accessoryType = UITableViewCellAccessoryType.None 
    } 
    else 
    { 
     mySelectedCell.accessoryType = UITableViewCellAccessoryType.Checkmark 
     print(menuItems[indexPath.row]) 

    } 

    // when click on "all" deselect all selected checks 
    if indexPath.row == menuItems.count-1 
    { 
     // i want to deselect my all selected checkmark here 
    } 




} 

}

я не в состоянии отменить Clicked чек здесь

+0

Вы не можете полагаться на аксессуар в клетке в качестве объектов клеток повторно. Я предлагаю вам использовать NSMutableIndexSet для хранения выбранных индексов, а затем вам нужно будет обратиться к этому в cellForRowAtIndexPath, чтобы установить/очистить галочку. Отменить выбор - значит просто удалить индексы из набора и перезагрузить эти строки – Paulw11

ответ

0

Вы должны сохранить состояние выбранных ячеек в NSMutableSet, а затем вам нужно обратиться к этому набору в удалять отметки из выбранных ячеек. (Точно так же, как Павел сказал по праву). Вы можете обратиться к приведенному ниже ответу.

Parse and Swift. Get cells in UITableView which have a checkmark. "Cannot invoke argument.“