2012-06-18 2 views
0

나는 stackoverflow와 온통 Google을 통해이 모든 것을 파악할 수 없습니다. 내 시나리오는 다음과 같습니다.iPhone [self performseguewithidentifier ...]가 새로운보기 컨트롤러를 표시하지 않습니다.

사용자가 자신이하려는 일에 대한 결정을 처음 내릴 때 "내 메인 화면"이 있습니다. 응용 프로그램은 XML 파일을 "가져 오기"하여 만든 CoreData 데이터베이스에서 작동합니다. 사용자는 내 응용 프로그램에서 전자 메일에 첨부 된 XML 파일을 열도록 선택할 수 있습니다.이 파일은 내 기본 화면을 자동으로 표시하여 파일 가져 오기를 실행하고 실행합니다.

나는이 문제를 아무런 문제없이 얻을 수 있습니다. 내 스토리 보드에서 필자는 주 화면에서 구문 분석을 처리하고 사용자에게 상태 정보를 제공하는보기 컨트롤러에 대해 ParseSegue라는 Segue를 가지고 있습니다. 메인 화면이 전자 메일 응용 프로그램을 통해이라고

, 메인 화면이 자동으로

[self performSegueWithIdentifier:@"ParseSegue" sender:self]; 

그때 prepareForSegue이 SEGUE 이름 확인을 호출하고 유효한 이름입니다. 이것은 올바른 파일을 구문 분석 할 수 있도록 파서 컨트롤러에 파일 URL을 할당하는 곳입니다.

문제는 segue가 실제로 발생하지 않는다는 것입니다. prepareForSegue 메소드가 호출되면 이름 "ParseSegue"가 유효하고 유효하지만 세그 자체는 단순히 발생하지 않습니다. 기본 화면에 버튼을 추가하고 스토리 보드 내에서 단절을 수행하도록 지시하면 정상적으로 작동합니다. 그러나 프로그래밍 방식으로 호출하는 것은 아무 것도하지 않는 것 같습니다.

+0

'prepareForSegue'에서'segue' 객체의'destinationViewController'와'sourceViewController' 속성을 확인하고 그 내용을 알려주시겠습니까? 나는 그 사람들이 무엇이 잘못 될지 확신하지 못하지만 적어도 그것이 그들이 존재한다면 단서가 될 것입니다. 또한 대소 문자를 구분하지 않는 문제를 확인하지 않았다면 좋은 생각 일 수 있습니다. segue 식별자가 대소 문자를 구분하는지 여부는 확실하지 않지만, 그렇다면 놀라지 않을 것입니다. –

+0

Paul, 'prepareForSegue'에서 대상 및 소스에 대한 유효한 View Controller를 표시합니다. Destination은 파서 뷰 컨트롤러 (스토리 보드에 지정된대로)의 인스턴스를 보여 주며 소스는 내 메인 뷰 컨트롤러의 인스턴스를 보여줍니다. –

+0

좋습니다. 'performSegueWithIdentifier'를 호출하는 함수에 나머지 코드를 게시 할 수 있습니까? 필자가 보았 듯이,'performSegueWithIdentifier'를 호출 한 후에 나오는 함수의 모든 문장은'prepareForSegue'가 실행 된 후에 실행되지만 segue 자체가 실제로 실행되기 전에 거기에 흥미로운 것이있을 수 있습니다. –

답변

0

나는 틀린 장소를 완전히 찾고 있었다. 내 문제는 응용 프로그램이 들어오는 URL에 반응하는 appDelegate에서 실수로 내 스토리 보드 및 기본보기 컨트롤러의 새 인스턴스를 만드는 것이 었습니다. 이는 이미 활성화되어 있고 화면에 표시되어 있거나 표시되지 않았을 수있는 것과 다릅니다.

내가 만들고 있던 컨트롤러는 실제로 표시되지 않았습니다.

NSLog(@"Source: %@", [segue.sourceViewController description]); 

내 시험 (버튼 누름) 및 가져 오기 테스트를위한 다른 메모리 주소를 보여줄 것이다 : 나는 단지이 때문에 로그를 발견했습니다. 이로 인해 저는 사실 스토리 보드의 두 가지 인스턴스와 앱의 기본보기 컨트롤러로 작업하고 있다고 생각하게되었습니다. 목적지와 소스 컨트롤러를 로깅하는 제안에 대해 Paul에게 감사드립니다.

+1

당신은 당신 자신의 대답을 받아 들일 수 있습니다 :). – Tieme

+0

완료 :-). 팁 고마워. –

관련 문제