2011-10-24 4 views
0

컨트롤러와 함께 두 개의 뷰가 있습니다. 응용 프로그램은 FirstViewController으로 시작합니다. 그런 다음 버튼을 사용하여 SecondViewController을 엽니 다.ViewController로 돌아갈 때 식별

다른 버튼을 사용하여 SecondViewController을 닫고 FirstViewController으로 돌아갑니다.

FirstViewController에서 포커스를 복구했는지 감지 할 수있는 방법이 있습니까?

편집 : 확인 답변을 찾고 viewWillAppear을 사용하지만 UIModalPresentationFormSheet을 사용하면 작동하지 않습니다.

-(IBAction)openSecondView{ 
    SecondViewController *screen = [[SecondViewController alloc] initWithNibName:nil bundle:nil]; 
    screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
    screen.modalPresentationStyle = UIModalPresentationFormSheet; 
    [self presentModalViewController:screen animated:YES]; 
    [screen release]; 
} 

닫기 버튼으로이보기를 닫습니다.

viewWillAppear

답변

1

대리인을 추가 (프로토콜) 방식의 viewWillAppear 내부의 UIViewController의 viewWillAppear 방법

- (void) viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 

} 
2

FirstViewController

- (void) viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    NSLog(@"view 1 focused"); 
} 
+0

나는 그것을 사용했지만 작동하지 않았습니다. 추가 정보로 질문을 편집했습니다. . 고맙습니다. – JSanchez

0

를 구현합니다. SecondViewController를 닫기 직전에 위임 메서드를 호출하십시오. 위임에 대한 추가 정보를 원하시면

은 viewWillAppear의 delegate

0

구현을 참조하십시오 콜백 + 같은 방법으로 다른 컨트롤러를 표시하는 당신이 탐색 컨트롤러 또는 tabbarcontroller를 사용하는 경우에만 작동이 전용의 경우는 어떻게 든 확인해야합니다 보기의 첫 번째 모습, 또는 다른 이유로 호출되었습니다.

위의 Gomathi에서 설명한대로 대리인을 사용하는 것이 훨씬 더 좋습니다!

0

첫 번째보기 컨트롤러를 어떻게 설정하는지에 따라 다릅니다. UINavigationViewController 내에서 캡슐화하고 (탐색 모음을 원하지 않는다면 언제든지 숨김 ([self.navigationController.navigationBar setHidden:YES])으로 설정할 수 있습니다.

관련 문제