2015-01-22 2 views
5

애플이 스토리 보드를 제공 한 지 얼마되지 않아서 처음부터 진화를 따르고 있습니다. 장단점이 있지만 확실한 것은 "미래"입니다. oldschool "xib"파일 ...스토리 보드의 외부 객체

내가 아는 것은 "외부 객체"라는 것입니다. 표준 "xibs"를 사용할 때 우리는 항상 &을 끌어서 IB 오브젝트 라이브러리 (오른쪽 창)에서 두 가지 특별한 종류의 오브젝트를 드롭 할 수 있습니다.

"파일 소유자"는 "외부 오브젝트"의 예입니다. 네 그것은 가능했다 ...

- (NSArray *)instantiateWithOwner:(id)ownerOrNil options:(NSDictionary *)optionsOrNil; 

:

우리는이 UINib API를 사용하는 등의 ViewController를 인스턴스화하여 우리의 XIB 파일에 & 드롭 한 번 더 ExternalObject를 끌어와 일부 외부 객체에를 연결 할 수 있었다 문서 : nib 파일은 단지 파일의 소유자 프록시 개체를 넘어 프록시 객체를 포함

경우, 런타임 교체 옵션 사전을 사용하는 프록시에 대한 개체를 지정할 수 있습니다. 해당 사전에서 은 UINibExternalObjects 키를 추가하고 프록시 개체 (키)의 이름과 실제 개체를 포함하는 사전 에 해당 값을 설정합니다. 프록시 객체의 이름은 Interface Builder 검사기 창의 이름 필드에 지정한 문자열입니다.

스토리 보드의 경우 개체 검사기에서 외부 개체를 사용할 수 없습니다. 스토리 보드에서 생성 된 뷰 컨트롤러에 외부 객체를 삽입 할 수있는 API를 찾지 못해서 말이됩니다. 우리는 단지 이것을 가지고 있습니다 :

- (id)instantiateInitialViewController; 

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier; 

그래서 "옵션"을 전달할 방법이 없습니다. ... 당신은 스위프트 프로젝트를 만들 때까지

그러나 ...

외부 개체 스토리 보드에서 사용할 수 없습니다 (아마도 내 스토리 보드에서 외부 개체 수 있도록 또 다른 요인이있다, 나는 확실하지 않다).

그래서 스토리 보드로 & 외부 오브젝트를 스토리 보드에 끌어다 놓을 수있는 설정이 가능합니다. 그러나 우리는 어떻게 이것을 활용할 수 있습니까? 어떻게 스토리 보드에서 뷰 컨트롤러를로드하고 이러한 프록시 객체를 연결합니까?

답변

2

당신은 &가 뷰 컨트롤러 장면에 NSObject라는를 삭제하고 관리자에서에게 적합한 클래스를 제공 드래그 할 수 있습니다.

enter image description here

예상 I는 this question/answerpublished it at GitHub위한 프로젝트를 실시 예로 만들어

는 그것까지 연결될 수있다.

+0

미안하지만이 질문에 대한 답변이 아닙니다. "NSObject"를 스토리 보드로 사용할 수 있다는 것을 알고 있습니다. IB 인스펙터에서 Object라고합니다. Im은 IB 검사관에서 "외부 대상"이라고 부르는 것을 묻습니다. 베스트! – kprofic

+0

이것은 무엇이든 나타낼 수 있습니다. – vikingosegundo

+0

네, 그렇습니다. 어떤 개체이든 상관 없지만 xib unarchivisation 중에이 개체가 만들어집니다. 반면에 외부 객체는이 프로세스에서 생성되지 않습니다. 이미 존재하는 다른 객체에 대한 링크입니다. – kprofic