2014-05-16 3 views
-1

뷰 컨트롤러가 3 개 있습니다.뷰 계층 구조가 아닌 다른 뷰에 모달 추가하는 방법 iOS

보기 컨트롤러 1은보기 컨트롤러 2를 모달로 표시합니다.

애니메이션으로보기 컨트롤러 2를 닫습니다.

내가 이상적으로이를 달성하기 위해 어떤 방법이 있나요 뷰 컨트롤러 1.

에서 모달 표시되는 뷰 컨트롤러 (3)를 나타 내기 위해이 거리에 애니메이션을 적용 할?

일단보기 컨트롤러 2가 활성화되면 어떤보기를 추가 할 수있는 것 같지 않아이를 달성하는 가장 좋은 방법은 무엇인지 모르겠습니다.

+1

문제를 일으키는 관련 코드와 같은 자세한 내용으로 질문을 업데이트하십시오. – rmaddy

+0

내가 모범 사례에 대해 물어 보는 중이거나 심지어 가능할 수도 있기 때문에 코드가 여기 관련이 있다고 생각하지 않습니다. 좀 더 자세하게 업데이트했습니다. – Tiddly

+0

당신이 묻는 것이 명확하지 않습니다. VC1이 모달 VC 2로 덮여있는 상태에서 VC 1을 변경 하시겠습니까? VC2를 해고 할 때 VC3이 그 아래에있게하려면 VC2가 움직이면 VC3가 이미 설치되어 있다고 말하고 있습니까? 만약 –

답변

0

View Controller 2에 대리자를 추가하십시오. View Controller 1은이 대리자를 준수합니다. View Controller 2를 닫을 때 위임자에게 전화를 걸고 동시에 View Controller 3에서 View Controller 3을 애니메이션없이 푸시합니다.

보기 컨트롤러 1 :

- (void)viewController2Dismissed 
{ 
    ViewController3 *viewController3 = [[ViewController3 alloc] init]; 

    [self.navigationController pushViewController:viewContrller3 animated:NO]; 
} 

보기 컨트롤러 2 헤더 :

@protocol ViewController2Delegate; 

@interface ViewController2 : UIViewController 

@property (weak, nonatomic) id <ViewController2Delegate> delegate; 

@end 

@protocol ViewController2Delegate <NSObject> 

- (void)viewController2Dismissed; 

@end 

보기 컨트롤러 2 해고 방법 :

- (IBAction)modalCloseButtonTapped:(id)sender 
{ 
    [self.delegate viewController2Dismissed]; 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

보기에서 컨트롤러 1, 당신은 대안으로 현재보기를 할 수 있습니다 View Controller 2가 애니메이션 처리를 마친 후 모달로 컨트롤러 3. View Controller 2에 애니메이션을 적용한 다음 View Controller 3에 애니메이션을 적용합니다. 둘 다 Modal View Controller 인 경우 View Controller 2 뒤에 애니메이션이없는 경우 View Controller 3를 애니메이션으로 표시 할 수있는 방법을 찾지 않는 것이 좋습니다 . 사용자에게 모달 뷰 컨트롤러에 있음을 알리고 정상적인 흐름으로 돌아 가기 전에보기에있는 것과 상호 작용해야합니다.

관련 문제