2011-12-26 5 views
2

간단한 질문 : iOS 앱을 만들고보기 컨트롤러가보기로 전달해야하는 좌표를 계산합니다. UIView의 drawRect 메서드를 사용하여, 내 질문에 어떻게보기로 데이터를 보내야합니까? 나는 델리게이트와 NSNotificationCenter를 알고 있지만, 이것이 모델 뷰 컨트롤러의 일부이기 때문에 더 간단한 방법이 있어야한다고 생각합니다. 그렇지 않다면, 그건 괜찮습니다. 나는 궁금해하고있었습니다. 감사!UIView와 UIViewController를 연결하는 가장 좋은 방법

답변

2

속성을 UIView에 선언하고 변경해야 할 경우 UIViewController에서 값을 변경합니다.

+0

감사합니다. 나는 더 간단한 방법이있을 줄 알았다. 한 가지 다른 질문은, 그러나 어떻게 UIViewController에서 값을 설정합니까? 뷰에 연결된 UIView 하위 클래스가 있지만'[self.view doSomething]'호출하면 오류가 반환됩니다. UIView의 인스턴스를 만들고 그 값을 설정해야합니까? 아니면'self.view = instanceOfUIView'와 같은 말을해야합니까? – omh1280

+0

'UIViewController'가 제공하는 기본'view' 속성은 새로운 속성을 추가 할 수 없습니다. 프로퍼티에'UIView'의 서브 클래스 인스턴스를 사용하고 인스턴스를 UIViewController 인스턴스의 기본 뷰에 하위 뷰로 추가해야합니다. '[self.view addSubview : instanceOfUIView]; ' – petershine

+0

@ Peter의 메소드는 확실히 작동해야합니다. 하지만 어떤 종류의 오류가 발생했는지 확신 할 수 없습니다. self.view가 이미 UIView 하위 클래스의 인스턴스이고 하위 클래스에 "doSomething"이라는 메서드가 있으면 [(SubClassName *) self.view doSomething]이 확실히 작동해야합니다. 그것은 당신이 시도한 것입니까? 그 때 본 오류는 무엇입니까? – barley

0

사용자 UIView 하위 클래스의 속성 또는 메소드입니다. 뷰를 수동으로 다시 그려야하는 경우에는 [self setNeedsDisplay]를 호출해야합니다.

이 경우 대리인 또는 NSNotificaitonCenter가 확실히 과용입니다. UIViewController는 아마도 UIView에 대한 포인터를 유지할 것이므로 뷰와 직접 상호 작용하는 것이 훨씬 간단합니다.

관련 문제