3

여기에 아주 이상한 문제가 있습니다. 나는 Tabbar Controller와 4 개의 탭이있는 App을 가지고 있는데, 각각은 Navigation Controller가 ViewController에 연결되어 있습니다. 모든 것이 정상적으로 작동했지만 이제는 두 개의보기에 단추를 추가했습니다.이 단추는 모달보기 컨트롤러를 호출하여 위로 슬라이드하고 일부 내용을 표시합니다. 이 모달 VC에는 모달 뷰를 숨기는 또 다른 버튼이 있습니다. 모달 뷰를 숨긴 후에 내 탐색 막대에서 뒤로 단추를 누르면 뷰가 애니메이션으로 되돌아 가지 않지만 애니메이션없이 바로 이전 뷰가 표시되는 반면 탐색 막대는 실제로 애니메이션으로 표시됩니다. 그러나 탭 모음을 사용하여 다른보기로 전환하고 즉시 다시 전환하면 갑자기 다시 작동하기 시작합니다.모달 뷰 컨트롤러를 닫은 후 뒤로 버튼 애니메이션이 깨졌습니다.

나는 몇 년 전

이 내가 모달 VC 보여주는거야 어떻게 아이폰 OS 3.2이 응용 프로그램을 다시 개발 한 이후로는, 스토리 보드없이 아이폰 OS SDK 6을 사용하고 있습니다 :

-(void)reportIssue{ 
    ReportIssueViewController *rivc = [[ReportIssueViewController alloc] initWithNibName:@"ReportIssueViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController presentModalViewController:rivc animated:TRUE]; 
    [rivc release]; 
} 

그리고 이것은 내가 그것을 숨기고있는 방법입니다 :

- (IBAction)cancelIssue:(id)sender { 
    [self dismissViewControllerAnimated:TRUE completion:NULL]; 
} 

누구나 이런 이상한 문제가 있습니까 ??? 이 동작을 제거하는 방법에 대한 아이디어가 있으면 기꺼이 기쁩니다.

미리 감사드립니다.

+1

이 같은 동작을 보아도 한 가지 원인은 viewDidAppear (또는 viewDidLoad 및/또는 viewDidDisappear에서도 가능)에서 super를 호출하지 않는 것입니다. – rdelmar

+0

예, 몇 가지 ViewController에서 누락되었습니다. 그러나이 수퍼 콜을 추가하는 것이 도움이되지 않았습니다 .-- ( – gasparuff

+0

당신은 옳았습니다 !!!!! – gasparuff

답변

5

문제점을 발견했습니다. 나는 UITabbarController를 서브 클래 싱했다. 그리고 나는 로직을 넣은 -(void)viewWillAppear -function을 추가했다. 불행히도 나는 그 함수 안에 [super viewWillAppear:animated] 호출을 추가하는 것을 잊었다. 아주 어리석은 실수.

rdelmar 덕분에 누가 내 질문의 첫 번째 의견에서이 문제의 가능한 원인을 지적 했나요?

+1

OMG 나는 그저 다시 나에게 일어난 것을 믿을 수 없다. – gasparuff

+0

내 'viewDidAppear'인데도 같은 결과를 얻었습니다. 결론 : 명시 적으로 원하지 않는 한 항상 super에 위임해야합니다. –

관련 문제