0

私は3つを含むアプリケーションを持っていますviewcontrollers

Mapviewrootviewcontroller

mapview -pushviewcontroller - リストビュー、

リストビュー - プッシュビューコントローラー - マップビュー、

第1条件

mapview -pushviewcontroller - cityview および cityview - pushviewcontroller - mapview

2番目の条件

listview -pushviewcontroller - cityview および cityview - pushviewcontroller - listview

このようなViewControllerの順序

mapview-listview、mapview-cityview、listview-cityview

問題は私が使用し[self.navigationController popToRootViewControllerAnimated:YES]; ていることですが、これを2番目の状態で使用すると、2番目の状態ではなく、1番目の状態でのみ機能し、マップビューが再び表示されます

すなわち。リストビューがシティビューに正常にプッシュされ、リストビューに戻りたいのですが、リストビューではなくマップビューに戻ります

私もこれを試してみます [self popToViewControllerAtIndex:1 animated:YES];

しかし、再び同じ問題を示しています。

フォーラムで見つけたほとんどすべてを試しました。

前もって感謝します!

4

1 に答える 1

0

ナビゲーション スタックを変更 (ビューをポップ) するには、次のメソッドを使用できます。

  1. ナビゲーション コントローラーによって現在管理されているビュー コントローラーを、指定された項目に置き換えます。

    - (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated

  2. ナビゲーション スタックからトップ ビュー コントローラーをポップし、表示を更新します。

    - (UIViewController *)popViewControllerAnimated:(BOOL)animated

  3. ルート ビュー コントローラーを除くスタック上のすべてのビュー コントローラーをポップし、表示を更新します。

    - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated

  4. 指定されたビュー コントローラーがナビゲーション スタックの一番上に来るまで、ビュー コントローラーをポップします。

    - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated

スタック上の現在のView Controllerにアクセスするには、使用できます@property(nonatomic, copy) NSArray *viewControllers

于 2011-09-21T05:50:49.760 に答える