인터페이스 빌더. 프로그래밍 방식의 ViewControllers를 IB ViewControllers로 교체하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/1601835

문제

Xcode에서 IB로 점점 더 많은 UI 구조를 이동함에 따라 남은 장애물이 하나 있습니다.

현재 사용자 정의 이니셜 라이저로 Xcode에서 사용자 정의 ViewControllers를 만듭니다. 그들은 일반적으로 전달 된 매개 변수를 통해 초기화 중에 설정된 Ivars가 있습니다. 나는 IB로 최대한 많이 움직이고 싶습니다.

누군가 나에게 신중하게 설명 할 수 있습니까? 또는 더 나은 코드를 지적 할 수 있습니까?

미리 감사드립니다.

건배, 더그

업데이트:

일반적인 장면은 내 AppDelegate가 네트워크로 나가서 NSMUTEDATA (nsMutabledata)를 가져온 다음 NavigationController의 ViewController 스택에 푸시되는 루트 ViewController (일반적으로 TableViewController)에 대한 참조를 전달하는 것입니다.

셀이 선택되면 SecondViewController가 Alloc/Init '이고 데이터의 하위 집합이 전달됩니다. SecondViewController는 약간 더 많은 데이터를 위해 네트워크로 이동하고, View Hierarchy, 검색된 데이터의 손 비트를 각 서브 뷰에 구축 한 다음 각 하위 뷰는 setneedSdisplay로 메시지를 보내면서 데이터를 처리합니다.

이 계층 적 데이터가 IB에 전달하고 싶은 것이 가능합니다.

도움이 되었습니까?

해결책

여전히 사용자 정의 이니셜 라이저를 가질 수 있습니다. 그러나이 초기화 내부에서 호출 할 수 있습니다 -[initWithNibName:@"yourNibName" bundle:bundle]. 당신은 당신의 연결을 연결합니다 UIKit 관련 인스턴스 변수 (UILabel, UIButton, 인터페이스 빌더의 등 등이 있으므로 이니셜 라이저에 해당 객체를 인스턴스화 할 필요가 없습니다. 기타 인스턴스 변수 (문자열, 사전, 사용자 정의 객체 등) 이니셜 라이저에서 인스턴스화하고 설정합니다.

또한, 당신의 조작을 명심하십시오 UIKit 레이블 텍스트 설정 또는 위치 설정과 같은 관련 변수 UIView, viewDidLoad 방법이 객체가 실행되는 시점에서 이러한 객체가 완전히 생성되지 않았기 때문에.

더 많은 정보가 필요하면 알려주세요.

다른 팁

초기화시 MyViewController로 전달하는 사용자 정의 객체 중 하나 인 UIViewController 및 MyViewControllerParameter를 확장하는 MyViewController가 있다고 가정 해 봅시다. MyViewController에는 MyViewControllerParameter 유형의 iBoutlets가 있습니다. MyViewController를 포함하는 다른보기 인 ParentView.xib에 넣고 싶습니다. ParentView.xib는 ParentViewController.m이 소유하고 다른 곳에서 생성됩니다. Xcode에서 ParentView.xib를 두 번 클릭하여 인터페이스 빌더를 시작합니다. 그런 다음 라이브러리보기에서 "객체"를 드래그합니다 (기본적으로 열려 있지 않은 경우 CMD+Shift+L로 라이브러리보기를 엽니 다). (이것은 CMD+0에 의해 활성화 된 창입니다.)

"객체"는 프로젝트의 모든 것을 나타내는 라이브러리 (Solid Gold Cube 아이콘으로 식별)에서 발견되는 임의의 위젯입니다. 새 객체를 문서 창에 배치 한 후 CMD+4를 입력하여 Indentity Inspector Window를 엽니 다. 최상위 텍스트 필드에서 View Controller 매개 변수 "MyViewControllerParameter"의 이름을 입력 할 수 있습니다. 다음으로 라이브러리에서 ViewController 위젯을 찾아서 문서 창에 떨어 뜨립니다. 속성 검사관 (CMD+1)을 열고 NIB 이름을 "myview.xib"로 설정합니다. "myview.xib"의 정의를 사용하여 Cocoatouch가 MyViewController를로드해야합니다.

Identity Inspector를 열고 클래스 속성을 MyViewController로 설정하십시오. 마지막으로 마우스 오른쪽 버튼을 클릭하거나 제어하십시오 (또는 MacBookPro에서 TrackPad를 올바르게 구성한 경우) MyViewController가 문서 창에서 클릭 한 경우 클릭하십시오 (또는 두 손가락 탭). MyViewController의 모든 iBoutlets를 보여주는 창이 열립니다. MyViewControllerParameter 아울렛 옆의 작은 열린 원에서 라인을 드래그하고 문서 창에 앉아있는 MyViewControllerParameter 개체에 떨어 뜨립니다. 이 점들을 연결하는 것은 인터페이스 빌더를 사용하여 객체간에 매개 변수를 설정하는 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top