2012-02-29 3 views
0

iPad 용 자체 분할보기 컨트롤러를 만들었습니다. 내 자신을 만드는 내 목적은 사용자가 마음대로 왼쪽 통증을 열거 나 닫을 수있게하는 것입니다. 내가 겪고있는 문제는 내 오른쪽 통증에있는 뷰 컨트롤러를 변경하여 애니메이션을 적용 할 수있는 방법을 찾을 수 없다는 것입니다. 분할보기 컨트롤러에서보기에 애니메이션을 적용하지만 오른쪽 창에있는 다른 모든 하위보기 컨트롤러는보기를 움직이지 않습니다. 나는 뷰를 전환하지 않으므로 이러한 메서드 중 하나를 사용할 수 없으며 방향을 변경하지 않으므로 이러한 메서드가 해제됩니다. (그래도 어쨌든 시도했지만 작동하지 않았습니다.) 누구든지이 일을 할 수있는 방법을 알고 있습니까?UIViewController 컨테이너 하위 컨트롤러 애니메이션

- (void) setShowLeftPane:(BOOL)showLeftPane{ 
    if (_showLeftPane != showLeftPane){ 
     _showLeftPane = showLeftPane; 

     //Alert viewcontrollers and perform animation 
     if (showLeftPane) [_leftController viewWillAppear:YES]; 
     else [_leftController viewWillDisappear:YES]; 
     [UIView animateWithDuration:.25 animations:^{ 
      [self layoutViews]; 
      [_rightController viewWillLayoutSubviews]; 
     } completion:^(BOOL fin){ 
      [_rightController viewDidLayoutSubviews]; 
      if (_showLeftPane) [_leftController viewDidAppear:YES]; 
      else [_leftController viewDidDisappear:YES]; 
     }]; 

     //Switch out the appropriate pane button view 
     [_showLeftPane ? _openLeftPane : _closeLeftPane removeFromSuperview]; 
     [self.view addSubview:_showLeftPane ? _closeLeftPane : _openLeftPane]; 
    } 
} 

현재 내 오른쪽 창보기 컨트롤러는 UINavigationController가, 그래서 주식 클래스 처리 해요 :

현재 애니메이션을 시작하는 내 코드입니다. 나는 그것의보기 컨트롤러를 테스트하는 것을/그것의보기 컨트롤러에 보내는 그것들의 애니메이션을 수행 할 수 있도록 보내기 위해 순환하는 UINavigationController에 카테고리 메소드 viewWillAnimateSubviewLayoutWithDuration:(NSTimeInterval)interval을 추가하는 것을 고려했습니다. 그러나 그것은 주식을 사용하는 방법이 있다면 특히 이상하지 않습니다. 행동 양식.

내 자신의 NavigationController 작성을 고려하고 있지만, 그렇게하지 않아도되는 일은별로하지 않습니다.

답변

0

신경 쓰이는 분들은 내 자신의 내비게이션 컨테이너 컨트롤러를 작성했습니다. 그것은 많은 작업 이었지만 몇 가지 이유로 이상적이었습니다. 먼저, 사용자 정의 컨테이너 컨트롤러를 생성하면 뷰 컨트롤러가 어떻게 작동하는지 훨씬 더 친숙 해져 도움이되었습니다. 둘째, '내비게이션 컨트롤러'가 작동하는 방식을 훨씬 더 잘 제어 할 수있어서, 사용자 정의 전환 및 맞춤 팝업/푸시 방식을 쉽게 구현할 수있었습니다. 예를 들어 '대체'(팝, 푸시) 메소드가 필요했습니다. 신청.

관련 문제