0

フィルタページにリンクしている右側のナビゲーションバーアイテムがある場所のリストがあります。フィルタページでパラメータを設定し、ボタンを押すだけでプレースリストに戻り、データを取得して前のビューを更新したいと思います。私は現在、ボタンが押されたときにこのアクションを実行しています。

-(IBAction)save:(id)sender
{
    PlaceList *placelist = [[PlaceList alloc] initWithNibName:@"PlaceList" bundle:nil];
    placelist.searchTxt = self.searchTxt.text;
    placelist.type = self.type;
    [self.navigationController pushViewController:placelist animated:YES];
    [placelist release]; 
}

ただし、これによりナビゲーションコントローラーに新しいテーブルが作成され、フィルターに戻るボタンが残ります。[ホーム]->[プレースリスト]->[フィルター]->[プレースリスト]->[ホーム]->[プレースリスト]->[フィルター]だけが必要な場合は、無限ループをフィルターしますが、データは逆方向にプッシュできます。ありがとう。

4

3 に答える 3

3

ビュー コントローラをプッシュする代わりに、ポップ オプションを使用する必要があります。ポップを実行すると、PlaceList の viewWillAppear が呼び出されます。tableview を使用している場合は、そこにデータをフェッチしてリロードできます。ポップせずに何度も押しても意味がありません。

于 2012-04-27T11:42:21.490 に答える
1

ビューをポップする必要がありますが、フィルタリングされた値を最初のビューに取得したいので、次のようなオプションがあります

KVO

デリゲート

デリゲートを使用することを強くお勧めします。開始点が必要な場合は、この url を見て、dismissModalViewController とデータを返します。

于 2012-04-27T13:58:56.743 に答える
0

Home -> Placelist->Filter の後、ビューをプッシュする代わりに Filter で次のように使用します

    [self.navigationController popViewControllerAnimated:YES];

これにより、フィルター ビューがスタックから削除され、プレースリストが表示されます.....

于 2012-04-27T12:01:52.340 に答える