2012-02-10 2 views
0

私は、viewWillAppearがポップ/プッシュビューで呼び出されないことを知っていますが、実際にはそのメソッドが必要です。ここで私は私がUINavigationControllerDelegateを追加し、viewWillAppearが呼び出されていない

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
     [viewController viewWillAppear:animated]; 
} 

-(void)viewWillAppear 
{ 
    NSLog(@"Log"); 
} 

を採用したがviewWillAppearはまだ

EDIT

AppDelegate.m 

    self.navigationController = [[UINavigationController alloc]init]; 
    [self.window setRootViewController:self.navigationController]; 

    FirstView *fview = [FirstView]alloc]init]; 
    [self.viewController pushViewController:fview animated:YES]; 

FirstView.m 
.... 
-(void)viewWillAppear 
{ 
    NSLog(@"Logged"); 
} 

を起動されません

を試すものです....

+0

あなたがこの偽の情報を手に入れた「私はviewWillAppearがポップで呼び出されていないことを知っている/ビューをプッシュしますか」? –

+0

@ Paul.s here http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html – objlv

+0

悪い情報や古い情報が必要です。私は新しい 'Master-Detail Application'を作成し、' viewDidAppear: 'と' viewWillDisappear: 'の両方にブレークポイントを置いて、アプリケーションを修正せずに実行し、両方のブレークポイントを起動しました... –

答えて

6

手がかりがここにある:

[viewController viewWillAppear:animated]; 
} 

-(void)viewWillAppear 

あなたは一つのパラメータを取るメソッドを呼び出す はあなたappdelegate.m

私の作業コードを貼り付けます。しかしあなたの方法はそれを持っていません。 Objective Cの言葉では、それはまったく異なる方法です。

それは次のようになります。

-(void)viewWillAppear:(BOOL)animated { 
    // blah 
} 
0

あなたが持っていますウィンドウのナビゲーションコントローラ?

self.navController = [[[CustomNavigationController alloc] initWithRootViewController:[[[HomeViewController alloc] init] autorelease]] autorelease]; 
[self.window addSubview:navController.view]; 
[self.window makeKeyAndVisible]; 
+0

自分にnavControllerを追加しました。 addSibviewの代わりにwindow.rootViewController – objlv

+0

あなたのコードのサンプルを提供してください(nav controller created、push、pop) – NeverBe

+0

更新されたコードをご覧ください。 – objlv

関連する問題