2014-10-02 4 views
1

이 코드는 iOS 4 이후 완벽하게 작동합니다. 기본보기 컨트롤러 아래에있는 환경 설정 UITableViewController를하고 있습니다. 환경 설정 버튼을 누르면 기본보기가 왼쪽으로 슬라이드하여 환경 설정 테이블보기가 표시됩니다. 아주 간단합니다.iOS 8에서 윈도우 계층 경고를 발생시키는 서브 뷰에 UIAlertController 표시

환경 설정 항목 중 하나가 UIActionSheet를 가져 왔습니다. 문제는 iOS 8에서는 UIActionSheet가 더 이상 사용되지 않습니다. 좋아, 할 일은 UIAlertController로 이동하는 것입니다. 음, 문제는 내가 UIAlertController를 불러옵니다 해야하는 행을 클릭하면, 내가 얻을이 :

Warning: Attempt to present <UIAlertController: 0x7cab8bf0> on <PrefsTableController: 0x7be5c5b0> whose view is not in the window hierarchy! 

이 아이폰 OS 6 또는 iOS 7

장소에 코드에서 발생하지 않습니다 prefs vc는 다음과 같습니다.

[self.window insertSubview:prefsTableController.view belowSubview:viewController.view]; 

아무 것도 아니며 잘 작동합니다. 문제는 iOS 8에서보기 계층 구조에 명확하게 배치했을 때보기가 분리 된 것으로 간주되는 이유를 이해할 수 없다는 것입니다.

UIAlertContoller을 제시하는 코드는 다음과 같습니다

[self presentViewController:view animated:YES completion:nil]; 

그래서, 내가 여기에 총 손실에 있어요. 뷰 A에 뷰 B를 명시 적으로 배치하면 뷰 B가 뷰 계층 구조에 없다는 것을 알 수있는 이유는 무엇입니까?

감사합니다.

+0

'[self presentViewController :보기 애니메이션 : 예 완료 : 없음]; ' – Kamchatka

+0

아래쪽 환경 설정보기 컨트롤러. –

+0

Xcode 6 3D 창 계층 구조보기 뷰를 사용했으며 실제로 올바른 위치에 있습니다. –

답변

0

prefsTableController (뷰뿐만 아니라)를 계층 구조에 추가해야합니다.

편집 : 하나의 옵션은 UITableViewController를 사용자 지정 컨테이너보기 컨트롤러의 자식으로 설정 한 다음 기본 설정을 표시 할 준비가되면 prefsViewController를 동일한 컨테이너의 다른 자식 (세부 정보 here)으로 추가하는 것입니다.

관련 문제