2013-07-02 5 views
0

최근에 iOS 앱을 개발 하려다가 플래시 라이트 앱을 만들고 싶어서 튜토리얼을 따랐습니다. 그러나 자습서는 스토리 보드를 사용하지 않고 앱을 수행합니다. 내가 스토리 보드에서 똑같은 일을하려 할 때 나는 할 수 없었다. 그래서 헤더/대리자 클래스에서 로직을 복사하면 기능이 전송되어야한다고 생각했습니다! 그러나 스토리 보드 버전을 실행하려고 시도 할 때 프로그램이 일시 중지/충돌하고 작은 거품이 표시된 기본 클래스를 보여줍니다. "스레드 1 : SIGABRT"스토리 보드는 xcode의 코드 기능을 변경합니까?

스토리 보드로 프로젝트를 수행하면 기본 논리가 변경됩니다 ? 오지 않아요 애플의 UIViewController 클래스 참조에서 어떤 의미를

+0

아마도 가장 큰 변화는 스토리 보딩이 없으면 앱의 각보기에 .xib 파일을 사용하는 XCode입니다. 그러나 스토리 보드를 사용할 때 이러한 모든 .xib 파일은 모든 뷰에 대한 레이아웃 정보가 들어있는 하나의 .storyboard 파일로 대체됩니다. –

+0

문제는 대부분 스토리 보드에서 코드가 변경되지 않았지만 xib 파일을 사용하지 않고 xib 파일과 작동하는 코드를 사용하는 것입니다. 복사 및 붙여 넣기는 모든 것을 복사하여 붙여 넣는 경우에만 작동합니다. 스토리 보드에 대한 자습서를 채택하려는 경우 필요한 변경을 수행 할 수 있도록 코드를 이해해야합니다. –

답변

0

을하는 것 : 앱이 뷰 컨트롤러와 관련 뷰를 정의하기 위해 스토리 보드를 사용

경우 앱은 결코 직접 그 클래스 의 객체를 초기화하지 않습니다. 대신보기 컨트롤러는 스토리 보드로 인스턴스화됩니다. 즉, Segue가 트리거 될 때 iOS에 의해 자동으로 또는 앱이 스토리 보드 객체의 instantiateViewControllerWithIdentifier : 메소드를 호출 할 때 프로그래밍 방식으로 을 인스턴스화합니다. 스토리 보드에서 보기 컨트롤러를 인스턴스화 할 때 iOS는 initWithCoder : 메소드를 대신 호출하여 새로운보기 컨트롤러를 초기화합니다. iOS 은 자동으로 nibName 속성을 스토리 보드에 저장된 nib 파일로 설정합니다.

+0

이 답변을 명확히하기 위해 스토리 보드로 전환 할 때 공통적으로 발생하는 문제는 스토리 보드가 "initWithCoder :"만 호출한다는 것이 명확하지 않을 수 있다는 것입니다. 다른 이니셜 라이저를 사용하는 경우 코드를 옮겨야 할 수 있습니다. –

관련 문제