2012-01-20 3 views
0

그래서 단추가있는보기가 있습니다. 이 버튼을 탭하면 스타일 시트 시트가있는 모달 뷰가 나타납니다. 거기서 나는 변화를 만들었고,이 변화 때문에 버튼을 가진 첫 번째 뷰의 배경색이 변경되어야합니다. 질문은, 그것을하는 방법인가?모달보기 양식 시트 아래의 업데이트보기

답변

1

를 사용하여 배경을 변경할 수 있습니다에 액세스 할 수 있도록합니다 . 보기가 화면에 없기 때문에보기가 언로드 될 수 있지만 viewcontroller.view는 지연 생성자이므로 속성을 설정하면 어쨌든 다시 생성됩니다.

트릭은 기본 View Controller와 통신하는 방법입니다. 교차 뷰 컨트롤러 통신을 처리하는 좋은 방법은 NSNotificationCenter를 사용하여 NSNotification을 게시하는 것입니다.

백그라운드 컨트롤을 설정하여 "BackgroundColorChangedNotification"과 같은 알림을 관찰 한 다음 해당 이름의 알림을 모달 폼 viewcontroller에서 게시하십시오.

이 접근법의 장점은 앱의 다른 컨트롤러가이 변경 사항을 알아야하는 경우 모두 알림에 등록 할 수 있고 컨트롤러가 서로에 대해 알 필요가 없으므로 코드가 멋지게 분리되어 있습니다.

+0

철저한 답변 주셔서 감사합니다. 도움이되었습니다. 나 자신을 위해 NSNotifications를 열었습니다 :) – Randex

0

Self.view.parentView는 당신이 첫 번째보기

그런 다음 setBackgrouncolor 방법 기본 페이지의의 ViewController가 아직도 여전히 해당 뷰에서 코드를 실행할 수 있습니다

+0

parentView 속성은 없지만 self.parentViewController는 있습니다. 내 parentViewController는 UINavigationController입니다. – Randex

+0

Yeah..it는 parentViewController가 될 수 있습니다. 실제로 저는 iPhone과이 코드에서 주로 xcode의 자동 완성 기능을 사용하므로 코드 실수가 있습니다. – Shubhank

+1

Apple이 parentViewController 속성이 iOS4와 iOS5 사이에서 작동하는 방식을 변경했습니다. 이 방법을 사용할 때는주의해야합니다. –