2017-07-25 9 views
0

私はUITableViewControllerと各セクションのチェックボックスのリストを持っています。UITableViewControllerの「他の行」のチェックマークを削除するには

  • への正しい方法は、セクション
  • 変更私が正しく私のバッキング・データビューを更新するようにセクションのチェックボックス、および同様UXビューの行をフェッチとは何ですか?

...他の言葉で、私はしかし、プロパティは読み取り専用です、NSIndexPathを使用してみました部1内でのみチェックマークをしたいです。

enter image description here

コード

public override void RowSelected(UITableView tableView, NSIndexPath indexPath) 
    { 
     if (indexPath.Section ==1) 
     { 
      var thisCell = tableView.CellAt(indexPath); 

      if (thisCell.Accessory == UITableViewCellAccessory.None) 
       thisCell.Accessory = UITableViewCellAccessory.Checkmark; 
      else 
       thisCell.Accessory = UITableViewCellAccessory.None; 
     } 

     if (indexPath.Section ==2) 
     { 
      var thisCell = tableView.CellAt(indexPath); 

      if (thisCell.Accessory == UITableViewCellAccessory.None) 
      { 
       thisCell.Accessory = UITableViewCellAccessory.Checkmark; 

       // Somehow deselect all the checkboxes in the other rows 
       // I can't set NSIndexPath properties on a new object... so I'm stuck 

      } 
      else 
      { 
       thisCell.Accessory = UITableViewCellAccessory.None; 
      } 
     } 
    } 

答えて

0

静的メソッドに位置していますNSIndexPathを作成する方法...

public override void RowSelected(UITableView tableView, NSIndexPath indexPath) 
    { 
     if (indexPath.Section ==1) 
     { 
      var thisCell = tableView.CellAt(indexPath); 

      if (thisCell.Accessory == UITableViewCellAccessory.None) 
       thisCell.Accessory = UITableViewCellAccessory.Checkmark; 
      else 
       thisCell.Accessory = UITableViewCellAccessory.None; 
     } 

     if (indexPath.Section ==2) 
     { 
      var thisCell = tableView.CellAt(indexPath); 

      if (thisCell.Accessory == UITableViewCellAccessory.None) 
      { 
       thisCell.Accessory = UITableViewCellAccessory.Checkmark; 

       // Somehow deselect all the checkboxes in the other ro 
       for (int i = 0; i < 55; i++) 
       { 
        if (i == indexPath.Row) 
         continue; 

        var tmpRowIndex = NSIndexPath.FromRowSection(i, indexPath.Section); 
        var otherCell = tableView.CellAt(tmpRowIndex); 

        if (otherCell == null) 
         break; 
        else 
         otherCell.Accessory = UITableViewCellAccessory.None; 
       } 
      } 
      else 
      { 
       thisCell.Accessory = UITableViewCellAccessory.None; 
      } 
     } 
    } 
関連する問題