1

저는 Objective-C를 처음 접했지만 아직 찾고있는 대답을 찾을 수 없었습니다.Mainview의 배경 이미지 변경

나는 특정 이벤트 (크리스마스)까지 일수를 세는 연습용 앱을 만들고 있습니다. 모두 잘 작동하지만 스토리 보드에서 생성 된 배경 이미지를 변경하는 간단한 방법을 구현하고 싶습니다. 앱의 현재 설정은 기본 유틸리티 앱이며 대체보기에는 UISegmentedControl이 포함되어있어 카운트 다운 라벨 뒤에 어떤 배경 이미지가 표시 될지 설정합니다.

별도의 뷰를 밀어 넣을 수는 있지만 매우 비효율적 인 것으로 알고 있습니다. NSNotifications를 사용하여 배경 이미지를 업데이트 할 수 있다고 확신하지만 문서를 읽은 후에도이를 구현하는 방법은 아직 명확하지 않습니다.

+0

그냥 못하고 - 당신이 원하는 문제는 배경의 변경 카운트 다운보기로 구성보기에서 통신 할 수있는 방법이 있나요? 또는 타이머 (일 변경 등)를 기반으로 자동 변경되도록 하시겠습니까? – bryanmac

+0

더 명확하지 않은 것에 대해 사과드립니다. 구성보기에서 카운트 다운보기로 통신하는 방법을 원했고 사용자가 분할 된 단추에서 누르는 단추에 따라 배경을 변경했습니다. –

답변

0

한 가지 방법은 대리인을 사용하는 것입니다. 델리게이트는 콜백입니다. 이렇게하면 한 뷰가 다른 뷰에 대한 참조를 전달하지 않고 겹쳐서 표시되는 것을 피할 수 있습니다 (커플 링이 도입 됨). 대신 공식 프로토콜을 통해 콜백을 제공하고 다른 프로토콜로 위임합니다.

What exactly does delegate do in xcode ios project?

또 다른 옵션은 공유 모델을 가지고하는 것입니다

는 여기를 커버하는 SO의 질문입니다. 싱글 톤 패턴을 사용하여 여러 뷰가 하나의 모델 (데이터 및 작업)을 공유 할 수 있으며 NSNotificationCenter를 사용하여 알림을 보낼 수 있습니다. 다른 뷰가 배경이 변경되었다는 알림을 받으면 모델을 쿼리하고 배경을 업데이트 할 수 있습니다.

관련 게시물 :

Giving notification to another class with NSNotificationCenter

How to share an object with the entire project?

여러 뷰에 변경을 방송하고자 할 때 지금까지 찬반 양론이가는대로, 기본적으로 알림이 좋은

. 위임은 두 항목이 일부 추상화와 직접 통신해야 할 때 유용합니다.

NSNotificationCenter vs delegation(using protocols)?