마지막 질문 (superview and parentviewcontroller nil after adding a subview)에서 새 질문을 열어 두겠습니다. 기본적으로 나는 하위 뷰를 사용하는 것이 좋은 생각이지만 다른 ViewController 내부에있는 서브 뷰를 제어하는 ViewController를 가져서는 안된다. 기본적으로 다음을하고 싶습니다 ... 공통 서브 뷰를 공유하는 두 개의 ViewController가 있습니다. SearchDate.xib라는 펜촉으로 서브 뷰를 만들었습니다. 파일 소유자는 해당 클래스 SearchDateView.m/h입니다. 그 클래스에는 레이블 인 펜촉의 UIView 안에 유일한 요소에 대한 콘센트가 있습니다. SearchDateView 클래스에는 SearchDateView.xib의 레이블 값을 변경하는 함수도 있습니다. 두 ViewControllers 모두이 펜촉을로드하고 싶지만 펜촉을 제대로로드하는 방법을 알지 못합니다. 아무리 최선을 다해도 아무 것도 표시되지 않고 최악의 경우 예외가 발생합니다. Apple docs는 IB의 다른 클래스의 인스턴스에서 기본보기로 드래그하는 것에 대해 이야기하지만 이는 제대로 작동하지 않는 것 같습니다. 나는 나의의 ViewController에서 SearchDateView 콘센트를하고 난 컨트롤러의로드 뷰에이 일을 시도 :여러 ViewControllers에서 사용할 수있는 연관된보기 클래스가있는 펜촉을 만들 수있는 방법
searchDateView = [[[NSBundle mainBundle] loadNibNamed:@"SearchDateView" owner:self options:nil] objectAtIndex:0];
[[self view] addSubview:searchDateView];
그러나 나는이 예외 얻을 :
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MainViewController 0x431fac0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key searchDateLabel.'
내가 완전히 뭔가 잘못하지만 무엇을하고있어 알을 펜촉, 펜촉에있는 객체 중 일부를 업데이트하는 연관된 뷰 클래스를 가지고 올바른 펜촉을 사용하고 다른 펜촉에서 펜촉을 재사용 할 수 있습니까?
편집 : 의견을 감안할 때 아마도 충분하지 않았을 것입니다. 나는 전체보기에 대해 동일한 nib 파일을 사용하고 싶지 않습니다. 오히려 하위보기입니다. 예를 들어 컨트롤러 A에는 맵과 SearchDateView가 있고 컨트롤러 B에는 테이블 뷰와 SearchDateView가 있습니다. 그래서 여러 컨트롤러에 서브 뷰를로드하는 방법을 궁금 해서요 ...
죄송하지만 어쩌면 내가 너무 명확하지 않았습니다. 나는 전체보기에 대해 동일한 nib 파일을 사용하고 싶지 않습니다. 오히려 하위보기입니다. 예를 들어 컨트롤러 A에는 맵과 SearchDateView가 있고 컨트롤러 B에는 테이블 뷰와 SearchDateView가 있습니다. 그래서 여러 컨트롤러에 하위 뷰를로드하는 방법을 궁금하네요. – deadroxy
귀하의 상황에보다 구체적으로 답변을 올렸습니다. – Nimrod
예. 수퍼 클래스가 내 문제의 유일한 "실제"해결책 인 것 같습니다. 아마도 나중에 리팩터링 할 것이지만 지금은 몇 가지 해결 방법을 찾았습니다. - 감사합니다! – deadroxy