UITableViewControllerな再描画の新たなテキストラベルの後popViewControllerAnimated
-
25-09-2019 - |
質問
いproblemetic UITableViewController に失敗した描画を更新した細胞の後、子ビューは削除されます。
こちらは何が起きています。変更後のデータを、子ビューの親ビューコントローラバのソースデータ配列を走る [tableView reloadData] よPostNotification.その後トリガーに使っている popViewControllerAnimated の親UITableViewController(popsの子ビューのスタックとしてのコントローラ一つのレベルまで)。
しかし、私の更新データが表示されませんの親ビューコントローラーですね!によるデバッガで、細胞のラベルが更新されたものの、見えるラベルは変わりません。ただし、私はスクロールをフリックテーブル、瞬間的に移動更新されたセルのビューが戻り、ラベルの商品が紹介されました。
また、呼び出し [tableView reloadData] 通 viewWillAppear その課題もみ続けています。
ここにはあるのでしょうが有効なことがあります。い3見構造のようになります:
1/ SettingsViewController : UITableViewController
2/ -- UserView : UITableViewController
3/ ---- UserDetailsView : UIViewController <UIActionSheetDelegate>
私は呼び出しUserDetailsView内UserViewとして
UserDetailsView *userDetailsView = [[UserDetailsView alloc] init];
[self.navigationController pushViewController:userDetailsView animated:YES];
場合に戻ったとしても最コントローラー(SettingsViewController)負荷の問題コントローラー(UserViewのものが描かれます。この場合のみからの復帰の子ビューのこの問題が発生します。
よろしくお願いしごご提案します。
解決
最後にペアリングコーディングます。
の時間については後にこの1つを働きました 私たちは、そのことに気づいている間の後、我々はreloadDataメッセージを送ったときにののtableViewは常にnull のでした。 あなたはObjective Cの中で知っているかもしれませんが、ヌルオブジェクトは、文句なしに任意のメッセージを受け付けます。
これは結局のところ、その「誰か」(エヘン、申し訳ありません、それは私だった)ヘッダファイルに次の行を定義しています。
UITableView *tableView;
今、あなたのスマートクッキーは、私たちがUITaleViewControllerを拡張するため、を我々はののtableView自分自身へのポインタを作成する必要がないことがわかっているだろうから。実際に私は、ヌルオブジェクトに継承されたのtableViewメンバーを交換していた。
謎を解きます。うまくいけば、これはあまりにもそこに他の誰かを助けます! :D