UIViewControllers
私の の 1 つに、UITableView
2 つの行しかなく、両方が常に画面に表示される があります。これは、歴史的にはテーブル ビューです (別の開発者がこの方法で作成しましたが、私はそれに固執していません)。my が呼び出されると、テーブルの両方の行が常に表示さcellForRowAtIndexPath
れるため、XIB からセルの 1 つを作成し、サブビューの 1 つへの参照を保存します ( UITextView
)。そこからテキストを取得する必要がある場合はUITextView
、単純にローカル参照を使用します。これは問題なく動作します - ほとんどの場合。
ある特定のケースでは、UIViewController
このケースから別のケースに移動します (を使用pushViewController:animated
)。その新しいView Controllerはかなりのメモリを使用するため、iOSは内部的に最初のView Controllerからテーブル行の割り当てを解除します(別のView Controllerがアクティブであるため、表示されなくなります)-そして、最初のView Controllerに戻ると、単に呼び出しますcellForRowAtIndexPath
また。その行が解放されると、当然、内部に保存した参照は無効になり、それを使用しようとすると、アプリがクラッシュします (「割り当て解除されたインスタンスに送信されたセレクター」)。
私の質問は、iOS がテーブル セルを内部的に解放するタイミングをキャッチして、参照をnil
後で再割り当てできるようにするにはどうすればよいかということです。