2012-01-19 2 views
2

UIViewController을 호출 한 직후에 닫으려고합니다. 그것은 간단해야하지만, 나는 성공하지 못합니다. 다음 방법을 사용하고 있습니다.UIViewController를 닫습니다

- (IBAction)bClose:(id)sender { 

    iTest *test = [[iTest alloc] initWithNibName:@"iTest" bundle:[NSBundle mainBundle]]; 
    test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:test animated:YES]; 
    [test release]; 

    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

정확히 무엇을하려합니까? – Costique

+0

여전히 자식 컨트롤러가 열려있는 컨트롤러를 닫으려고 할 때 작동하지 않습니다. 드로잉 보드로 돌아가 적절한 방법으로 탐색해야합니다. – Till

답변

1

나는 그것이 간단하지 않다고 생각합니다. 나는 비슷한 것을했지만 그 대신에 두 번째를 첫 번째로 제시하고 두 번째가 해고하기를 원할 때 첫 번째를 닫습니다 (동시에 두 가지를 모두 해산). 내가 더 잘 무슨 뜻인지 설명하기 :

  1. 주 -> 현재 controller1
  2. controller1을 -> 현재 컨트롤러 2
  3. 컨트롤러 2 -> 더 나은 솔루션이 거기에있다 내가 확신 controller1

을 기각 그것. C1 내부

UIViewController *c1 = [[UIViewController alloc] init]; 
[self presentModalViewController: c1 animated:YES]; 

:

이 같은

뭔가 : 첫 번째 컨트롤러 내부

C2 내부
UIViewController *c2 = [[UIViewController alloc] init]; 
c2.c1 = self; 
[self presentModalViewController: c2 animated:YES]; 

:

[c1 dismissModalViewControllerAnimated:YES]; 
+0

코드 조각이 있습니까? – user941059

+0

일부 코드를 추가하도록 수정되었습니다. 이게 효과가 있든 없든 당신에게 말할 수는 없지만 이런 식으로 생각합니다. 더 이상 코드가 없습니다. – vakio

0

나 또한 비슷한 시도했다 .. 도망 갔다. 거의 같은 문제의 NTO는 ..

내 솔루션은 시간이 0.5 초에 타이머를 시작하고 나를 위해 일한 선택기

에서보기를 해제했다.

+0

[self performSelector : @ 선택기 (닫기) withObject : nil afterDelay : 0.5]; - (void) close {[self dismissModalViewControllerAnimated : YES];} - 여전히 실패하고, 뭔가 잘못하고있는 중입니까? – user941059

+0

닫기 메서드에서 중단 점을 확인하여 dismissModalview가 호출되는지 확인합니다. 그렇다면. 그런 다음 지연을 더 높은 값으로 변경하십시오. 어떤 가치에서.보기는 기각 될 것입니다. 이 모든 것은 두 번째보기가 스스로 시작하는 데 얼마나 시간이 걸리는지에 달려 있습니다. – Shubhank

+0

새로운 것을 제시하기 전에 해고해야한다고 생각합니다. 그러나 틀릴 수 있습니다. – vakio

관련 문제