2017-03-22 7 views
2

何が起こるのかわかりませんが、インターフェイスビルダーまたはプログラムによってテーブルビューのデリゲートをもう設定できません。インターフェイスビルダーでXCode:tableViewのデリゲートを設定できません(IBまたはプログラムで)

Can't set the delegate

、のtableViewのためのデリゲートリンクがなくなっている、と私はtableview.delegate = selfを設定した場合でも、プログラム、方法(didSelectRowAtIndexPath)が呼び出されません。

これは私にとって初めてのことです。現在のプロジェクトでのみ発生します。新しいプロジェクトでは、この問題はありません。 これがなぜ起こるのか誰にも分かりますか?あなたはビューコントローラとUITableViewDataSourceとUITableViewDelegateを追加したことを確認してください

self.yourTableView.delegate = self 
self.yourTableView.dataSource = self 

は、あなたのテーブルビューのための出口を接続して、あなたのビューコントローラクラスに次のようにしてみてください追加する

+0

これを試しましたか? http://stackoverflow.com/a/2261626/6414904、あなたのビルドをクリーニングし、xcodeを再起動すると良いスタートです。 – Hapeki

答えて

0

てみてくださいありがとうございました定義。この、ストーリーボードで

class YourViewController : UIViewController, UITableViewDataSource, UITableViewDelegate { 

} 
+0

質問を読んで、彼はtableViewを接続する方法を知っていて、xCodeのバグのように思えます – darksider

0

、あなたのビューコントローラウィンドウに移動あなたのユーティリティウィンドウが開き、接続インスペクター(右端のアイコン) を見ていることを確認してください今のViewControllerのウィンドウヘッダーでのViewControllerのアイコンをクリックすると、それ」のようなすべての接続を表示します。 テーブルビューをクリックして選択し、ヘッダ内のテーブルビューからVCアイコンまでドラッグします。デリゲートをオフにして、それを選択する必要があります。デリゲートとデータソースの両方を接続する必要があると思います。それぞれの正常なサービスに対するBLOBを再開する必要があります。

+0

あなたのtableviewメソッドの署名をチェックしてください。 cellForRowAtIndexPathが呼び出されたがdidSelectRowAtIndexPathが呼び出されない場合新しいdidSelectRowAtIndexPathを作成し、使用しているものが一致していることを確認します。それを追加するときに自動完成していることを確認してください。 – Cliff

関連する問題