0

iPadアプリを見ると、いくつかのコンテナー ビューがあります。Containerviews を使用すると、4 つの iPhone ビューすべてを 1 つの iPad 画面に同時に表示できます。TrackingViewController と呼ばれる 1 つのビューには、同じ iPad 画面にも表示される 2 番目のビュー コントローラー (MainViewController) のボタンから更新する UITableView ( tableと呼ばれる) があります。コードを呼び出します

 TrackingViewController *trackView = [[TrackingViewController alloc] init];
    [trackView.view setNeedsDisplay];
    [trackView.table reloadData];

MainViewController のボタンの IBAction の最後で、データは完全に転送されますが、TrackingViewController のテーブル自体は視覚的に更新されず、このデータが表示されません。

次に、完全に異なるモーダル ビュー コントローラーを手動で開始し、アプリが iPad で実行されているときに TrackingViewController でそれを閉じると、データが表示されます。MainViewController でボタンが押されたときに、 TrackingViewController のビューまたはデータを視覚的に自動的に更新するにはどうすればよいですか?ここに画像の説明を入力

iPad シミュレーターが役立つ場合があります。 ここに画像の説明を入力

4

2 に答える 2

0

私もあなたの質問を理解していません..

私が見る唯一のことは、2 つの UITableViews を更新したいのですが、コードでは 1 つの TableView のデータのみをリロードしていることです?!?

[trackView.table reloadData]; [otherTable reloadData];

しかし、私はあなたの質問を本当に理解していません....

他の TableView が別のクラスにある場合は、次のようなことを試してください...

TrackingViewController.h 内:

- (void)refreshMyTable;

TrackingViewController.m では:

- (void)refreshMyTable{
      [table reloadData];
}

MainViewController.m アクションで、両方のテーブルを更新する必要があります。

- (IBAction)theRefreshingAction{
     TrackingViewController *trackView = [[TrackingViewController alloc] init];
     [trackView refreshMyTable]; //This refreshes Table in trackView
     [mainViewTable reloadData]; //This in MainView
}
于 2013-03-15T10:42:51.543 に答える
0

次の投稿を利用して NSNotificationCenter を使用することになりました。

iPhoneの別のView Controllerから関数を呼び出す

私の場合、[table reloadData]; のみを含む関数を呼び出します。動作しませんが、私の performFetch 関数を呼び出すと動作しました (最後に [table reloadData]; も呼び出されます)。

于 2013-03-28T03:07:16.797 に答える