2017-09-18 1 views
-1

私は2つのカスタムUITableViewCellを持っていて、ユーザーがボタンをタップすると現在tableViewにあるセルをループしたいと思っていました。私はtableView.visibleCellsメソッドを使って私のtableViewをループしました。私はループセルを介して、私はチェックして、forループNumericInputTableViewCellかのif-else文でBooleanInputTableViewCellを発見した場合によっては私のロジックコードを分離するときの間にチェックとアクセスのネームスペースを入力する方法

func doneButtonTapped() { 
    // TODO: - Need to collect user's input.... 

    guard let node = node else { 
     return 
    } 

    var dict: Dictionary<String, Double> 

    let calculator = Calculator(module: node.value) // make it a failable initializer, so when user taps done without populating the inputs, it prompts them to 

    for cells in tableView.visibleCells { 
     if cells is NumericInputTableViewCell { 
      print("numeric cell") 
      // TODO: - Append to dictionary 

      cells. //Error 

     } else if cells is BooleanInputTableViewCell { 
      print("boolean cell") 
      //TODO: - Append to dictionary 

     cells. //Error 

     } 
    } 
} 

:ここに私のコードです。セルの名前空間にアクセスしようとしたときにエラーが発生し、xcodeが自動的に完了しませんでした。 ifステートメントでcellsを使用して、これらのカスタムセルにアクセスできるはずです。しかし、私はできませんでした。私は間違って何をしていますか?ありがとう!私のカスタムセルで

UPDATE

The error I got is "User of unresolved identifier 'cell'"

、私はnumericTitleLabelというプロパティを持って、私はそれにアクセスしようとしたとき、それは私にそのエラーを与えました。

+1

エラーは何ですか?あなたは単に細胞を持つことはできません。どうか明らかにしてください。 – rmaddy

+0

Xcodeは自動的に自動補完されないので、コードが無効であるとは限りません。 – Sweeper

+0

ありがとう、更新を参照してください –

答えて

0

if cell isチェックセルは、いくつかのクラスである場合は、プロパティにアクセスしたい場合、あなたはUITableViewCell

tableView.visibleCells.forEach ({ cell in 
    if let numbericCell = cell as? NumericInputTableViewCell { 
     print("numeric cell") 
     // TODO: - Append to dictionary 

     numbericCell.. 

    } else if let booleanCell = cell as? BooleanInputTableViewCell { 
     print("boolean cell") 
     //TODO: - Append to dictionary 

     booleanCell... 
    } 
}) 
+0

ニース!それはうまくいった!ありがとう! –

0

あるごvisibleCellをキャストする必要がありますあなたがされているどのような種類の項目を参照してvisibleCellsを見ていることを奇妙に思えます表現される。

indexPathsForVisibleRowsを使用し、返されたインデックスパスを使用して、表示されているものを把握するためにデータソースを照会することをお勧めします。

+0

私は単に 'visibleCells'関数が実際に見えるセルを与えることに気付きました。 –

関連する問題