2017-03-27 13 views
-1

私は、次のようなオプションがあります:一度 迅速** willSelectRowAtIndexPath **有効化および無効化オプション

  • たび
  • いつか
  • 今何もしない場合
  • 持っていた

    1. なしに私は他のオプションを無効にし、オプションのいずれかが選択されている場合は無効にします。 私はこれがどれだけ除いて他の人を選択して頂きます

      func tableView (tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? { 
      
          // first 3 rows in any section should not be selectable 
          if indexPath.row <= 1 { 
           return nil 
          } 
      
          return indexPath 
      } 
      

      を行っています。どうすれば私の要件を達成できるのですか?すべてのアイデアは本当にappericiatedされます。

      ありがとうございました。

  • +0

    あなたの要件は何ですか?もっと説明していただけますか? –

    答えて

    1

    現在選択された行を追跡し、次のようにwillSelectRowAtIndexPath方法でコードを変更するグローバル変数を取る:

    var selectedRow = -1 //Global Variable 
    
    public func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? 
    { 
        if(indexPath.row>0 && selectedRow == 0) //When "None" option row is selected & user tries to select any other row. 
        { 
         return nil 
        } 
    
        else if(indexPath.row == 0 && selectedRow > 0) //When any row other than "None" is selected and user tries to select "None" option row 
        { 
         return nil 
        } 
         else //When no row is selected or rows other than "None" are selected and user tries to select any row other than "None" row. 
         { 
          selectedRow = indexPath.row 
          return indexPath 
         } 
    } 
    

    は、要件ごとに上記のコードとその作業をテストしました。あなたが探していたものがあれば教えてください。乾杯。

    +0

    遅く返事申し訳ありません。しかし、何が起こるかは、私が選択しなかった場合、他のすべてのオプションが選択できなくなりました。これは私が望んだものです。しかし、もう一度選択を解除すると、他のオプションは選択できません。 – iron

    +0

    テーブルビューのデリゲート機能を選択解除し、selectedRow = -1を設定すると、コードは必要に応じて機能します。 – Rahul

    関連する問題