2012-02-10 2 views
0

Я знаю, что viewWillAppear не вызывается для просмотров pop/push, но мне действительно нужен этот метод. Вот что я пытаюсьviewWillAppear не называется

Я добавил UINavigationControllerDelegate и принять

- (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 здесь http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html – objlv

+0

Ну, это должно быть плохой или старой информацией. Я только что создал новое «приложение« Мастер-детали », поместил точку останова как в« viewDidAppear: », так и« viewWillDisappear: »и запустил приложение без изменений и обе эти точки останова ... –

ответ

6

Ключом здесь:

[viewController viewWillAppear:animated]; 
} 

-(void)viewWillAppear 

Вы называете метод, который принимает один параметр. Но у вашего метода нет такого. В терминах Objective C это совершенно другой метод.

Он должен выглядеть следующим образом:

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

у вас есть навигационный контроллер в окне? вставить ваш appdelegate.m

мой рабочий код:

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

Я добавил navController к себе. window.rootViewController вместо addSibview – objlv

+0

, пожалуйста, укажите образец своего кода (создание навигационного контроллера, push, pop) – NeverBe

+0

, пожалуйста, просмотрите обновленный код. – objlv

Смежные вопросы