2011-12-29 11 views
0

ナビゲーションコントローラを使用せずに2または3ビュー戻って戻ることができますか?それは私のアプリでは、メインメニューのビューがあります。私は、(複数のビューから)他のすべてのページからそのメニューにアクセスしたいです。これはどのように実装できますか? [self dismissModalViewControllerAnimated:YES];これは実装できません。 誰でも助けてください。ナビゲーションコントローラなしでビューを2回戻す

答えて

2

あなたがそうdismissModalViewControllerAnimated方法についてのUIViewControllerの参照からの読み込み最も明白な場所で解決策を見つけることができます。もちろん、

...

あなたは連続して数モーダルView Controllerを提示し、ひいてはモーダルのスタックを構築する場合スタック内のビューコントローラでこのメソッドを呼び出すと、直下の子ビューコントローラと、その子の上のすべてのビューコントローラがスタック上に閉じられます。これが起こると、一番上のビューだけがアニメ化されて消滅します。いずれの中間ビューコントローラもスタックから単に除去される。一番上のビューはモーダルトランジションスタイルを使用して閉じられ、スタック内の他のビューコントローラで使用されるスタイルとは異なる場合があります。

したがって、ターゲットビューでdismissModalViewControllerAnimatedを呼び出すだけで十分です。私は次のコードを使用した:

[[[[[self parentViewController] parentViewController] parentViewController] parentViewController] dismissModalViewControllerAnimated:YES]; 

私の家に帰る。

here

+0

:) thanqそれは働いています... – priya

+0

あなたは質問を重複としてマークし、コメントセクションにリンクを提供することができました。 – viral

0

「2つまたは3つのを表示しますか?戻る」 removeFromSuperviewを使用しますか?または、あなたについて話していますViewControllers

ストーリーボードを使用していますか?

ないはい場合:私は解決策を見つけた

- (void)showModalAssistantViewController 
{ 

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"AssistantStoryboard" bundle:nil]; 
AssistantRootViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"AssistantNavigationController"]; 
[viewController setModalPresentationStyle:UIModalPresentationFullScreen]; 
[viewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
[self.navigationController presentModalViewController:viewController animated:YES]; 
//... or pushToViewController ... whatever, you get the point. 
} 
+0

:3番目の画面で

は、あなたがこのコードを追加します。単純なビューを使用すると、前方への動きのみが[self presentModalViewController:firstview animated:YES]になります。 2と3のビューに戻ってきたかった – priya

2

からコピーされ、「ナビゲーションコントローラなしでバック行く2つのビュー

うーん、私は、これはポイントを逃すが、これを行う最も簡単な方法が使用するかどうかわからないんだけどナビゲーションコントローラでpopToRootViewControllerAnimated:だから

[self.navigationController popToRootViewControllerAnimated:TRUE]; 

、あなたはNで3つの画面のシリーズを持っていたと仮定avigation Controllerを選択し、画面の画面では、の最初の画面に戻るための[戻る]ボタンが必要でした。ストーリーボードか何かを使用していない

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // change the back button and add an event handler 
    self.navigationItem.leftBarButtonItem = 
    [[UIBarButtonItem alloc] initWithTitle:@"Back" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(handleBack:)]; 
} 


-(void)handleBack:(id)sender 
{ 
    NSLog(@"About to go back to the first screen.."); 
    [self.navigationController popToRootViewControllerAnimated:TRUE]; 
} 
0
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]; 
関連する問題