2010-03-16 3 views
1

View Controller 클래스에 너무 많은 대리자가있어 문제가 발생하기 시작합니다. 나는 뷰 컨트롤러 클래스를 작게 유지하기 위해 별도의 클래스에 델리게이트를 작성하고자한다. (UIAlertViewDelegate와 같은) 프로그래밍 방식으로 만들어진 대리자의 경우 쉽게 할 수 있습니다.ViewController 클래스에서 델리게이트를 추출하는 방법은 무엇입니까?

문제는 Interface Builder에 할당 된 대리인에 있습니다. 예를 들어 다른 클래스를 UITableViewDelegate 또는 UITableViewDataSource로 할당하도록 IB에게 어떻게 알릴 수 있습니까? 또는 단추의 이벤트 내부에서 Touch UP에 대해 다른 IBAction 메소드를 선택하는 방법은 무엇입니까?

하나의 솔루션은 IB에서 연결을 삭제하고 ViewDidLoad에서 프로그래밍 방식으로 작성하는 것이지만 많은 ViewController가 있기 때문에 시간이 오래 걸립니다.

다른 아이디어?

답변

0

IB의 라이브러리에서 NSObject를 끌어서 Inspector에서 클래스를 변경하십시오. 이렇게하면 대리자 클래스의 인스턴스를 만들 수 있습니다. 그런 다음 UITableView의 대리자 콘센트를 IB의 새로 만든 개체에 연결할 수 있습니다.

+0

감사합니다. 이해가 안되는 부분은 내 대리인의 인스턴스가 만들어 질 때입니다. 실제로 대리자 메서드를 호출해야 할 때 EXC_BAD_ACCESS가 있는데 런타임에 대리자 개체를 찾을 수 없다고 가정합니다. – adranale

+0

잘 .. viewController에서 내 대리자로 콘센트를 만들어야하고 런타임에 대리자 개체가 만들어 질 것이라고 밝혀졌습니다 (View Controller가로드 될 때). – adranale

관련 문제