2013-05-06 1 views
1

나는이 경고를 계속 받고 있으며 무엇을 시도 하든지 해결 방법을 모르겠습니다.모달보기 제공 실패시 계속

Attempt to present <LoginViewController: 0x1f0b5010> on <ViewController: 0x1dda1670> whose view is not in the window hierarchy! 

내가, 내가 프로그래밍 모달 뷰를 호출하고있어 이후 내 스토리 보드에서 SEGUE이 없습니다 :

enter image description here

: 여기

//Load Login View if no username is found 
NSLog(@"No username found"); 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
LoginViewController *loginView = (LoginViewController *) 
[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
[self presentViewController:loginView animated:YES completion:nil]; 

내 스토리 보드의 이미지입니다

감사합니다 !!!

+2

당신이있는 viewDidLoad에서이 코드를 작성 했 문제를 :) 해결할? – Impossible

+0

나는 viewDidAppear에서 시도해 보시기 바랍니다. ViewDidLoad에서 메서드를 호출 한 것과 동일한 문제가 있습니다. 확인해 보시겠습니까? – Buntylm

+1

스토리 보드의 스팽글 사이에 관계 링크를 추가해야합니다. – chandu

답변

4

ViewDidload에보기를 표시하려고하면 오류가 발생합니다.

이상을 사용하려면 performselector을 사용하고이 코드를 다소 지연 시키십시오.

+0

viewDidload에서 가져 왔습니다. ViewDidAppear로 옮겨 봅니다. – KingPolygon

+0

그리고 예 [self performSelector : @selector (Test) withObject : nil afterDelay : 0.5]; 시도 할 수도 있습니다. – Impossible

0

viewDidLoad 방법으로 모달보기 컨트롤러를 표시하려면이 코드가 있어야합니다. 그런 다음 viewDidAppear: 메소드로 이동하십시오.

0

내가 생각하고 또한 당신은 내가 내가 viewDidLoad: 방법으로 modalViewController을 제시하려고 시도했습니다 문제가 있었다 ViewDidLoad: 로 함수를 호출 코멘트에 넣어. 다음 나는 우리가 viewcontroller's보기로 performselector

을 사용할 수 있습니다 해결하기 위해 ViewDidAppear: 서로 가지로 기능을 이동하지합니다 (viewDidLoad 메시지가 전송)이 로드되었다는 점에서 windowhierarchy에서, 메시지를 보낸 후에 창 계층 구조에 있습니다 (viewDidAppear: 메시지가 전송 될 때).

+0

DownVoter warm 당신을 환영하지만, 먼저 코멘트를 넣어 규칙을 따르십시오. – Buntylm

0

"loginView"는 주어진대로 .m 파일의 .h 또는 확장자로 전역으로 선언하고 합성합니다.

@property(strong, nonatomic)LoginViewController *loginView;