2014-03-26 3 views
1

다른 View Controller로 이어질 버튼이 있습니다. shouldPerformSegueWithIdentifier에서 식별자를 확인하고 nextClicked을 호출 한 후이 특정 버튼에 대해 NO을 반환합니다.프로그래밍 방식으로 segue를 수행 할 때 애니메이션이 표시되지 않습니다.

nextClicked에서 나는 HTTP 요청을하고 물건을 확인하고, 문제는 내가 지금 어떤 애니메이션을 얻을 수 없다는 것입니다 후 모든 것이 OK 경우 내가

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self performSegueWithIdentifier:@"getstartednext" sender:self]; 
}); 

을 ... SEGUE는 모달 타입이다. YESshouldPerformSegueWithIdentifier에 반환하고 프로그래밍 방식으로 나중에 프로그래밍하지 않으면 애니메이션이 나타나고 모든 것이 정상적으로 수행됩니다.

+1

이것은 실제로 질문에 대답하지 않지만, 기본적으로 첫 번째 섹 그를 차단하고 다시 실행하는 대신 초기 performSegue 호출 전에 검사하지 않는 이유는 무엇입니까? – JoeFryer

+0

performSegue beforePerformSegue – Johannes

답변

1

shouldPerformSegueWithIdentifier을 오용하고 있습니다. 버튼 클릭에 대한 응답으로 특별한 작업을 수행하려는 경우 action-target 및 이 아닌 버튼이 연결되어 있어야합니다.

+0

나는 생각했다. 나는 당신이 얻는 애니메이션 때문에 segue를 원했고, 다시 얼마나 쉽게 돌아갈지를 알고 싶습니다. – Johannes

+0

코드의 다른 위치에서 프로그래밍 방식으로 segue를 테스트했습니다. 애니메이션이 잘 작동하는 것 같습니다 ... – Johannes

+1

내가 말한 것을 읽으십시오. 나는 당신이 프로그램 적으로 세그를 가질 수 없다고 말하지 않았다. 하지만 자동으로 프로그래밍 방식으로 믹싱하고 있습니다. 하지마. – matt

1

당신의 아이디어로 새로운 프로젝트를 만들었고 애니메이션이 생겼습니다. 당신이 보낸 사람을 제외하고이 @"getstartednext"

- (IBAction)go:(id)sender 
{ 

} 

같은 코드 nil

- (void) nextClicked 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self performSegueWithIdentifier:@"getstartednext" sender:nil]; 
    }); 
} 

if 보낸 = 전무, (IBAction!

다음 viewController와 식별자와 IB를 통해 연결 작업입니다 go:) 그런 다음 nextClicked으로 전화를 걸고 있습니다. NO
마법처럼 YES

- (BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender 
{ 
    if ([identifier isEqualToString:@"getstartednext"] && sender != nil) 
    { 
     [self nextClicked]; 
     return NO; 
    } 

    return YES; 
} 

작품을 반환하기 때문에코드는 SEGUE을하고있다.

관련 문제