2012-11-29 5 views
1

이 질문 전에 게시 알고 있지만, 내가 찾은 답은UIViewControllerHierarchyInconsistency 명확한 협회

예외는 엑스 코드 4.5.1에 ​​2 년 전 앱 wroten을 실행 한 후 발생이 경우에 따라되지 않습니다.

이것은 :

예외 'UIViewControllerHierarchyInconsistency' 이유는 'A 뷰는 한 번에 많아야 하나의 뷰 제어기와 연관 될 수있다! < UIView : 0xaa9c4f0; 프레임 = (0 0; 320 367); 자동 크기 조정 = W + H; layer => 은 < TabledReservationListController : 0xaa89e80>과 관련됩니다. 이보기를 < UIViewController : 0x9e9e310>에 연결하기 전에이 연관을 지우십시오. ' 이 하나

UIViewControllerHierarchyInconsistency when trying to present a modal view controller

같은 몇 가지 답변에 다음

는이 질문의 이미지를 볼 수 있습니다처럼 nib 파일에서의 ViewController를 제거하는 것이 좋습니다.

문제는이 경우, 내가의 ViewController를하지는이다,이 TabledReservationListController의 펜촉 파일입니다

TabledReservationListView.xib

는 그리고 이것은 어디에 프로그램과 충돌 코드의 일부이다 :

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [navigation setDelegate: self]; 
    [self createReservationListController]; 

    [reservationListController viewWillAppear: NO]; 

    // in this line below 
    [[navigation topViewController] setView: [reservationListController view]]; 

    [reservationListController viewDidAppear: NO]; 

    [[self view] addSubview: [navigation view]]; 
    CGRect r = [[self view] frame]; 
    r.origin.y = 0; 
    [[navigation view] setFrame: r]; 

    [reservationListController setNavigationController: navigation]; 
} 


- (void)createReservationListController { 
    TabledReservationListController *res_ = 
     [[TabledReservationListController alloc] initWithNibName: @"TabledReservationListView" 
                  bundle: nil]; 
    [self setReservationListController: res_]; 
    [res_ release]; 

    [[[self navigation] topViewController] setTitle: @"Available Tables"]; 
} 

어쩌면 누군가가 도움을 줄 수 있습니다.

답변

1

viewWillAppearviewDidAppear으로 전화하지 마십시오. 그것들은 프레임 워크가 여러분에게 호출하는 메소드가되어야합니다.

reservationListController의보기를 다른 컨트롤러에 제공하는 대신 reservationListController을 눌러야합니다.

+0

감사합니다. 나는 그것을 시도 할 것입니다. 이 앱은 다소 복잡하고 다른 사람이 코딩했기 때문에 iOS에서 초보자입니다. 나는 그가 같은 구조 (TabledReservationListController) ReservationListPresenterController, ReservationListController의 속성에 다른보기를로드하려고 생각합니다. 크기 때문에 여기에 모든 코드를 붙여 넣으면 그로테스크합니다. 이 문제는 Xcode 4.5와 UIViewControllerHierarchyInconsistency에서 시작되었습니다. – alejandro