0

2.xバージョンのSDKでうまく動作するiPhoneアプリがあります。 3.0にアップグレードすると、didSelectRowAtIndexPathメソッドが呼び出されなくなり、ユーザーが行を強調表示したときの動作は起こりません。これは、UITableViewとは別のnibにあるカスタムUITableViewCellです。データソースとデータデリゲートの両方がInterface Builderで適切に配線されています。2.21にコンパイルすると動作します。バージョン3.0では、行をクリックしても何も行われません。iPhone - UITableViewが3.0 SDKのdidSelectRowAtIndexPathメソッドを呼び出さない

This questionにも同様の問題が言及されていますが、クリックを取っている別の最初のレスポンダーについて言及しています。私はセルやテーブルに接続された最初のレスポンダーメソッドを持っていません。

テーブルを2.xおよび3.0で正しく動作させるにはどうすればよいですか?カスタムセルにはラベルとイメージがあり、行をクリックして特定の行の詳細を表示したいだけです。

+0

allowSelectionプロパティがYESに設定されていることを確認してください。 – pix0r

+0

はい、UITableViewのallowsSelectionプロパティはYESに設定されています。行がクリックされると、1秒間ハイライトされてからノーマル(強調表示されない)に戻りますが、ビューコントローラのdidSelectRowAtIndexPathメソッドは呼び出されません。 –

+0

willSelectRowAtIndexPathが機能するかどうかチェックしましたか? –

答えて

1

あなたはおそらくあまりにもこの答えを好きではないだろう...

3.0では動作しません、2.2で働いていたいくつかのもの(あなたはすでにこれを知っています)。いくつかのAPIが変更されました。

しかし、Appleが最初に動作するはずがないため、いくつかの点が異なります。

これらの変更の1つが問題であるかどうかは確かではありませんが、それが原因である可能性があります。ニブやプロパティに関係する子要素は、確実に影響を受けました。

私のアドバイスは、次のようになります。

まず、あなたのペン先の接続をチェックし、たぶん、あなたは2.2あなたが離れて取得してみましょう、しかし、3.0がないことを行方不明に接続しています。

次に、簡単なテーブルビューでテストアプリケーションを構築し、それを動作させることができるかどうかを確認します。そうであれば、あなたのコードからテストアプリケーションに複雑さを加えて、それが壊れるまで追加する必要があります。

残念ながら、これには時間がかかることがあります。私たちが見つけることができるものがあるかどうかを確認するコードをいくつか投稿することもできます。

+0

私は、新しいペン先を作成し、コントロールをコピーし、同じ方法でそれらを再配線しました。これはうまくいった。私はXIBファイルの差分を行なったし、新しいものでは唯一の大きな違いは、この行だった: <文字列キー=「IBCocoaTouchPluginVersion」> 3.0 をするとき、私それはXCodeので追加されなかった理由を私は知りませんバージョン3.0で古いxibを保存しました。それは唯一の違いであるように見え、xibは正しく機能します。 –

+0

Coreyさん、ありがとうございました あなたは正しいです! 4.xで新しいTableViewコントローラで同じ問題が発生しました。私は、不正なツールバーのアウトレットが正しくフックされていなかったことが分かります。私のTableViewControllerのペン先でアウトレットリファレンスを削除した後、didSelectRowAtIndexPathが呼び出され始めました。 –

0

私はこの同じ問題を抱えていました。私はあなたが想像することができる何かをしようと何時間も費やしました。面白いことに、私のコードで問題にならなかったのです。

私はObjective Resourceを使用しています。バージョン1.0.1にアップグレードした後、問題は解決しませんでした。すべてのサードパーティのライブラリをチェックし、最新版を使用して3.0の変更を行っていることを確認してください。

関連する問題