2013-03-07 3 views
3

프로그래밍 방식으로 푸시 xcode를 푸는 방법은 무엇입니까?xcode 프로그래밍 방식으로 푸는 방법

간단한 방법은 스토리 보드를 사용하고 'exit'버튼을 당기는 것입니다.하지만 내가하려는 의도는보기가 종료되기 전에 먼저 일부 코드를 실행하는 것입니다.

당신은 SEGUE을 가질 수
+1

포 [프로그램 적으로 푸는 방법을 수행하는 방법]의 중복이 가능합니까? (https://stackoverflow.com/questions/12509422/how-to-perform-unwind-segue-programmatically) –

답변

5

을 찾을 수 있습니다

[self.navigationController popToRootViewControllerAnimated:(BOOL)] 

또는 특정 컨트롤러로 이동하기 : 좀 더 자세하게 들어

[self.navigationController popToViewController: 
    [[self.navigationController viewControllers] 
    objectAtIndex:THEINDEXOFTHEVIEWCONTROLLERTOUNWINDTO] 
    animated:YES]; 

참조 이 게시물에 대한 내 답변 : Push to root View controller in UIStoryboard

+0

답변에 감사드립니다 !! – dan

1

당신은 여전히 ​​두 뷰 사이의 스토리 보드에 SEGUE를 만듭니다

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender 

의 UIViewController에서이 메소드를 호출하여 코드에서 발생, 당신은 SEGUE의 이름을 지정하고를 사용하십시오 식별자 매개 변수의 정확한 이름

+0

우수 답변. 실제로 가장 긴장을 푸는데 사용됩니다! –

+1

하지만 현재 VC를 스택에 푸시하지 않고 현재 VC를 제거하고 스택의 맨 위에 올 리도록하는 것입니까? –

4

끝내기 전에 일부 코드를 실행하려는 경우 (그렇지 않으면 반환 할 때까지 간단하게 UI 잠금을 유지하지만) 대상 컨트롤러에서 canPerformUnwindSegueAction:fromViewController:withSender:을 무시할 수 있습니다. 아마도 이런

뭔가 :

- (BOOL)canPerformUnwindSegueAction:(SEL)action 
       fromViewController:(UIViewController *)fromViewController 
         withSender:(id)sender 
{ 
    // Some operation... 

    return YES; // Or NO if something went wrong and you want to abort 
} 

그렇지 않으면, 당신은 실제로 프로그래밍 SEGUE을 만들고 segueForUnwindingToViewController:fromViewController:identifier:를 재정 의하여 애니메이션/언 와인드 로직을 관리 할 수 ​​있습니다.

당신은 rootViewController 사용으로 돌아가려면 complete documentation here

관련 문제