2012-01-19 11 views
2

ビューベースのビューを4つ作成しました。ナビゲーションコントローラを使用して、ビューを変更しています。私の3番目のビューでは、1つのボタンがあります。そのボタンをクリックすると、アプリは最初のビューに戻るはずです(ビューが2回戻る)。移動方法ナビゲーションベースのアプリケーションで2つのビューを戻す

私はこれが動作しない

[self.navigationController popViewControllerAnimated:YES]; 
[self.navigationController popViewControllerAnimated:YES]; 

を使用していました。それは前のページにのみ行きます。

答えて

4

これを試してみてください、そして、あなたの仕様

-(void)goToMainCategoryView; 
{ 
id object = nil; 

for (UIViewController *viewControl in self.navigationController.viewControllers) 
{ 
    if(viewControl.view.tag == 0) 
    { 
     object = viewControl; 
    } 
} 
[self.navigationController popToViewController:object animated:YES]; 
} 
+0

おかげで、少し修正した後で動作します..... – umakanta

+0

@マカンタ:私の答えがあなたを助けてくれて、私のアンハを受け入れるか、アップヴォートします。 – Hiren

3

トップに戻るビューコントローラへのすべての道に行くために使用

popToRootViewControllerAnimated: 

:ルートビューコントローラを除く

ポップスタック上のすべてのビューコントローラと更新:

ドキュメント表示。特定のビューコントローラに戻ります

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 

または

popToViewController:animated: 

は、あなたがに行きたいビューコントローラを供給しています。

ドキュメント:指定されたビューコントローラがナビゲーションスタックの最上位になるまで

ポップは、コントローラを表示します。

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

パラメータ

のViewController あなたは、スタックの最上位になりたいビューコントローラ。

+0

申し訳ありませんが、私は質問を更新しました。 ..... – umakanta

4

用いることであろうインデックスでのUIViewControllerを選択するもう一つの簡単なルートに従って変更を行います。

NSArray *viewsArray = [self.navigationController viewControllers]; 
UIViewController *chosenView = [viewsArray objectAtIndex:1]; 
[self.navigationController popToViewController:chosenView animated:YES]; 

chosenView、その後で2番目のビューになりナビゲーションスタック(位置1)。あなたが大きなスタックを持っていて、特定のビューに行きたい場合。 SWIFT 1.2 :: Xcodeで

12
for (UIViewController *controller in self.navigationController.viewControllers) 
{ 
    if ([controller isKindOfClass:[NeededViewController class]]) 
    { 
     [self.navigationController popToViewController:controller 
               animated:YES]; 
     break; 
    } 
} 
+0

Perfact ans本当に –

+0

thnx @KetanPatel –

+0

どれくらい甘い。完璧に動作します。 – nithinreddy

0

同じことは:6.4

for controller: UIViewController in self.navigationController?.viewControllers as! [UIViewController] { 
     if controller.isKindOfClass(YourViewController) { 
      self.navigationController!.popToViewController(controller, animated: true) 
     } 
    } 
関連する問題