2012-10-10 3 views
0

내 ENV,어떻게 dismissViewControllerAnimated 후 firstViewController의 웹보기에 액세스 할 수 있습니다

iOS6 
Xcode 4.5.1 
application for iOS5 or later 

나는 두 ViewControllers를 사용합니다.

FirstViewController에는 webView가 있으며 Seague 모달이 SecondViewController를 호출합니다.

[self performSegueWithIdentifier:@"foo" sender:self]; 

그런 다음 SecondeViewController를 닫은 후 FirstViewController에서 webView를 다시로드하려고합니다. 어떻게 다시로드 할 수 있습니까?

다음 코드를 사용하여 SecondViewController를 닫습니다.

[self.parentViewController dismissViewControllerAnimated:YES completion:^{ }]; 

많은 분들께 미리 감사드립니다.

답변

1

당신이 호출 할 필요가 있습니다

[webView reload]; 

을 적당한 장소 firstViewController의 같은 viewWillAppear, 또는 viewDidAppear 위임 방법에.

[self.parentViewController dismissViewControllerAnimated:YES completion:^{ [self.firstViewController.webView reload]; }]; 

을하지만 당신은 완료 블록 (범위)에서 사용할 수 firstViewController의 인스턴스가 있어야합니다

또한 완료 블록을 통해 웹보기를 다시로드 할 수 있습니다. 이를 위해 firstViewController를 appdelegate 또는 다른 방법으로 선언 할 수 있습니다. 또한 webView를 firstViewController의 속성으로 설정해야합니다.

+0

고마워요! viewWillAppear에서 reload를 사용하면 잘 할 수 있습니다. –

0

UIWebView에는 시도 할 수있는 reload이라는 메서드가 있습니다.

dismissViewControllerAnimated 완료 블록에서 호출하거나 첫 번째 컨트롤러 viewWillAppear에서 호출 할 수 있습니다 (이 경우 과도한 재로드가 발생하지 않도록해야합니다).

0

뷰 컨트롤러 계층에서 부모로부터 수신기를 제거합니다.

- (void)removeFromParentViewController 

이 당신을 도울 것입니다 Apple Class Reference 희망을 따를 수 있습니다.

+0

또는 dismissViewControllerAnimated도 작동해야합니다. – kamleshwar

관련 문제