0

2 つの異なる場所から呼び出されるビュー コントローラーがあります。

1) ルートコントローラーから呼び出します。表示され、入力されます。追加ボタンは完全に機能します。モーダル フォームを開き、情報を取得して、そのデリゲートを介してビュー コントローラーに返します。

- (void)itemsAddViewController:(AddItemView *)itemsAddViewController didAddItem
  (OrdersDetails *)orderDetail;
{
    if (orderDetail) {
        [orderDetailItems addObject:orderDetail];
}   
[self fetchOrderDetails];
[lineItemsTableView reloadData];
[self dismissModalViewControllerAnimated:YES];

}

ただし、別のビュー (分割ビューの右側) から呼び出すと、この同じコードはテーブルをリロードしません。データが追加されます-フォームを離れて戻ってきた場合、データはそこにありますが、テーブルビューは更新されていません。コードをステップ実行すると、行が取得されますが、それが表示されないように上に移動します。

4

1 に答える 1

1

モーダル ビュー コントローラーが-itemsAddViewController:didAddItem:、基になるコントローラーのビューを含むビュー コントローラー上に表示されると、表示されないため、コントローラーがメモリ警告を受け取るとアンロードされます。

その結果、ビューが読み込まれず、 を呼び出したときにlineItemsTableViewアウトレットが表示される場合があります。への呼び出しは、コントローラーのビューが表示されていないときに永続的な状態になる可能性があると想定しないように、に移動する必要があります。nil-itemsAddViewController:didAddItem:reloadData-viewWillAppear:

于 2011-06-20T16:44:02.087 に答える