Programing

Xcode-XIB를 ViewController 클래스에 연결하는 방법

crosscheck 2020. 12. 11. 07:48
반응형

Xcode-XIB를 ViewController 클래스에 연결하는 방법


먼저 TestViewController.h와 * .m을 만들었습니다. 나중에 내 TestView.xib.

이제 xib에게 "예, TestViewController 클래스를 파일 소유자로 사용하십시오"라고 말해야합니다.

xib를 열고 fileOwner의 Identity Inspector로 이동하여 "Custom Class"TestViewController에서 선택합니다.

하지만 이것은 충분하지 않은 것 같습니다. TestView.xib를 연 다음 "Assistent Editor View"를 선택하면 분할 화면의 오른쪽 부분에 해당 ViewController가 나타납니다. 제 경우에는 "TestViewController.h" . 하지만 그렇지 않습니다!

아웃렛과 액션을 사용하는 것처럼 라인을 파일로 드래그하여 xib를 뷰 컨트롤러에 바인딩해야합니까?


xib를 클릭하여 선택합니다. 이제 파일의 소유자를 선택하십시오. 오른쪽의 속성 패널에서 세 번째 탭인 "Identity Inspector"를 선택합니다. Custom Class 라는 헤더가 있습니다 . 거기에 뷰 컨트롤러의 이름을 지정하십시오. 그런 다음 파일 소유자와 요소를 연결할 수 있습니다.

여기에 이미지 설명 입력


UIViewController 하위 클래스를 만들었을 때 정확히이 상황이 발생했다고 생각하지만 "UI 용 .xib 사용"을 확인하는 것을 잊었습니다. 나중에 돌아가서 .xib를 별도로 만들었습니다.

새 UIViewController와 .xib를 연결하는 단계별 방법은 다음과 같습니다.

  1. IB 왼쪽 창에있는 자리 표시 자에서 파일 소유자를 선택합니다. Property Inspector (IB의 오른쪽 창)에서 세 번째 탭을 선택하고 "Custom Class"아래의 "Class"를 새 UIViewController 하위 클래스의 이름으로 편집합니다.

  2. 그런 다음 왼쪽 창에서 파일 소유자를 ctrl- 클릭 또는 마우스 오른쪽 버튼으로 클릭하고 왼쪽 창의 개체 부분에서 최상위보기에 선을 그립니다. '보기'콘센트를 선택하면 완료됩니다.

이제 다른 콘센트 및 작업을 설정할 수 있습니다. 코드에서 뷰 컨트롤러를 인스턴스화하고 initWithNibName과 니브 이름을 사용하여로드 할 준비가되었습니다.


In the view controller create a "view" outlet (UIView) and mark it as IBOutlet. (When you use the correct defaults/patterns when creating the files within xcode, then this property should be there already.) In Interface Builder create a link between the main view and the view property/outlet of the view controller/file's owner. Just for the full picture: On creating/allocating the view controller, you should init it with the appropriate XIB file. This is the very moment, where the view controller object is bound to the view that is generated out of the XIB file.


1) First just like every one said give the view controller name in class of File's Owner

2) Select File's Owner drag a line from there to view this connects the both

3) Create an instance of View controller and add it to window to that the code snippet is as follows,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

4) 마지막으로 view controller의 view를 window에 subview로 추가하면 코딩은 다음과 같습니다.

[window addSubview:[controller view]];

appdelegate에서 다음 스 니펫을 시도하십시오.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
    [window addSubview:[controller view]];
 }

5) 다음 스 니펫을 사용하여 창에 대한보기 크기를 최대화하여 간격이 나타나지 않도록합니다.

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]];

이제 예상대로 뷰 컨트롤러가 표시됩니다.

이게 도움이 되길 바란다....


예, 인터페이스 빌더에서 해당 뷰 컨트롤러의 파일 소유자에게 뷰 속성을 추가해야합니다.


파일 소유자를 선택하고 ID 검사기 창으로 이동하여 파일 소유자의 클래스 이름을 뷰 .h 파일로 변경하면 연결됩니다.

참고 URL : https://stackoverflow.com/questions/11225654/xcode-how-to-connect-xib-to-viewcontroller-class

반응형