2009-07-09 2 views
0

필자는 인터페이스 뷰어에서 tableview 및 관련 아웃렛 등을 사용하여 항목 목록을 표시하는 뷰를 만들었습니다. 항목을 클릭하면 해당 항목의 세부 정보가 표시됩니다.Interface Builder로 빌드 된 뷰를 서브 클래스화할 수 있습니까?

이제는 같은 종류의 항목 목록과 셀 선택에 대한 몇 가지 추가 컨트롤 및 다른 동작으로 매우 비슷한보기를 만들고 싶습니다. 이 경우 사용자가 항목을 클릭하면 효과적으로 해당 항목을 템플릿으로 사용하여 새 항목을 만듭니다. 또는 단추를 클릭하여 새 항목을 만들 수 있습니다. 이 외에도 원래보기에서 재사용하려는 많은 논리가 있습니다. 예를 들어 항목이 위치에 따라 다르며 위치 정보를 업데이트하는 백그라운드 스레드가 있습니다.

자연스러운 일은 원래의 viewcontroller를 서브 클래스 화하고 IB를 사용하여 두 번째보기 레이아웃을 작성하는 것입니다. 그러나, 내가 이것을 착수하기 전에 이것이 가능한지/권장되는 연습인지 궁금합니다. IB가 수퍼 클래스의 IBOutlet을 인식하고 연결시킬 수 있습니까?

답변

2

IB는 수퍼 클래스에 정의 된 IBOutlet을 인식합니다.

언제나 : UIViewController에있는보기의 콘센트는 각보기 컨트롤러에 대한 하위 클래스로 정의됩니다.

1

pgb가 정확합니다. IB는 수퍼 클래스의 콘센트를 인식합니다.

컨트롤러를 서브 클래 싱하는 것이 좋은지 나쁜지에 대해서는 확실하지 않습니다. Apple은 정렬/필터링 동작을 변경하기 위해 NSArrayController의 서브 클래 싱을 제안합니다. 뷰 컨트롤러는 배열 컨트롤러와는 다르지만 뷰 컨트롤러를 서브 클래 싱하는 것이 올바른 일이라고 저는 감히 말합니다.

관련 문제