2009-07-06 6 views
2

iPhoneアプリケーションに開始日/終了日の機能があります。これはiPhoneのネイティブカレンダーアプリケーションの場合と似ていますが、「終日」オプションはありません。つまり、ユーザが行うことができるのは、開始時刻/終了時刻と終了時刻を入力することです。UITableViewテーブルセルが選択されていないときはどうすれば検出できますか?

インターフェイスは、2つのセルを持つ単純なグループ化されたUITableViewです。ユーザーはStartセルまたはEndセルのいずれかを選択して(青に変えて)、UIDatePickerを使用してそれぞれの値を変更します。

ユーザーがテーブルの外側をクリックすると、テーブルセルが選択されないことを除いて、すべてが正常に機能しています。問題は、ユーザーが以前に選択したセルを編集中であることです。

理想的には、常にテーブルセルの1つを選択するようにユーザーを制限することができます。それを除いて、私はセルが選択されていないことを検出できるために解決するので、何かを編集する前にUIDatePickerを傍受することができます。

+0

これは、SDK 3.0自体がこれを修正しました。 – bruce1337

答えて

0

あなたの質問から、そのビューの下にUIPickerがあるtableViewがあることがわかります。ユーザーがセルの1つを選択したときに画面にプッシュする別のビューにピッカーを配置することができます。この手法を使用すると、ピッカー内の情報を編集するためにセルの1つを選択する必要があります。

1

willDeselectRowAtIndexPathUITableViewDelegateから実装できます。 nilを戻し、行が選択解除されません。

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath { 
    return nil; 
} 

それとも、あなたがdidDeselectRowAtIndexPathを実装することができ、あなたはそれが未選択だったことを知っているであろう。しかし、メンバ変数やどこかに格納する必要があります。

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
関連する問題