2012-02-22 9 views
0

ビューから別のビューにナビゲートされ、ビューをポップアップしたときにviewWillAppearメソッドが呼び出されません。viewWillAppearメソッドがiPhone SDKを呼び出さない

理由を教えてください。

+3

のコンテナビューコントローラセクションの実装を読む

[UIViewController addChildViewController:]; [UIViewController removeFromParentViewController:]; [UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:] [UIViewController willMoveToParentViewController:] [UIViewController didMoveToParentViewController:] 

をビューをどうするかのように提示される。 – rckoenes

+2

ビュー自体にその機能はありません。ビューコントローラーだけがその機能を備えています。これは、addSubview/removeFromeSuperviewを実行すると呼び出されません。 ViewControllerをプッシュ/ポップしている場合は、その操作方法を示す必要があります。 –

+0

私は1つのviewcontrollerから別のView Controllerにプッシュしています – user1179681

答えて

0

最初にviewWillAppearメソッドが呼び出されたときにビューを読み込むと、使用しようとする

[self navigationController] popViewControllerAnimated:TRUE];

バック

-1

を返すために、私はまた、このような状況に会いました。 iOS 5では問題ありません。 しかし、iOS 4.3.1でテストすると、viewWillAppearは呼び出していません。

だからuはも、あなたは確認することができ、ブレークポイントを使用して確認し、ウルアプリケーションはいくつかの場所に墜落しているよりも、すべてうまくいっている場合は、この

[[self.navigationController.viewControllers objectAtIndex:0] viewWillAppear:YES]; 
[self.navigationController popViewControllerAnimated:YES]; 
+0

ここでは、2つのView Controllerから非常に多くのナビゲーションがありますが、これはバックボタンハンドラで呼び出す必要があるということです。私たちはそれを望んでいないので、最後の戻るボタンハンドラのためだけにそのメソッドを呼び出すことにします – user1179681

+0

'viewWillAppear:'を手動で呼び出すべきではありません。見つけて対処しなければならない深刻な問題があります。 – titaniumdecoy

0

を試すことができます

手動viewWillAppearを呼び出し、必要これらの手順...... FirstViewController

SecondViewController *second = [[SecondViewController alloc]init] 
[self.navigationController pushViewController:second animated:TRUE]; 
でプッシュのため

ステップ1に従ってくださいSecondViewController

//チェックナビゲーションコントローラでポップ用

ステップ2.ウルアプリケーションスタックに存在し

NSArray *arrView = [self.navigationController viewControllers]; 

NSLog(@"arrView %@",arrView); 

for(int i = 0; i <[arrView count]-1, i++) 
{ 
    if([arrView objectAtIndex:i] isKindOfClass:[FirstViewController class]) 
    { 
     [self.navigationController popViewControllerAnimated:TRUE]; 
    } 
} 
0

それは、これらの問題は、ビューコントローラの封じ込めの不適切な使用によって引き起こされていることを、一般的なのです。あなたのビューコントローラの階層を調べる必要がありますし、次のメソッド研究:、我々はいくつかのより多くの情報が必要になりますUIViewController Class Reference.

関連する問題