2016-08-10 3 views
1

UIPopoverPresentationControllerにはUITableViewUISwitchが実装されています。 UITableView代理人のメソッドが呼び出されない以外は正常に動作します。私はこのUITableViewデリゲートメソッドがUIPopoverPresentationControllerで呼び出されない

[self performSelector:@selector(reloadTblData) withObject:nil afterDelay:2.0] 

そしてreloadTblDataようperformSelectorを呼び出したときにのみ呼び出されるDeletgate方法は、単に空のメソッドです。私はそこで何もしていません。 理由は何でしょうか?

+0

デリゲートオブジェクトが 'nil'だと思います。 –

+0

@EvgenyKarkanどのようにperformSelector行 – Ali

+0

コードを表示するだけで呼び出されて取得されています。 –

答えて

1

デリゲートをどのように保持しているかを確認してください。

委任者とデータソースは弱参照されているため、参照を保持しているView Controllerがないと、それらは破棄される可能性があります。

テーブルビューがデリゲートでもあるView Controllerの一部である場合、問題は発生しません。しかし、デリゲートが別のオブジェクトの場合は、実行ループの最後にガベージコレクションされます。

関連する問題