2017-03-01 3 views
0

질문 제목이 정확하면 미리 사과해야합니다. 나는 내가 성취하고자하는 기본적인 흐름을 아래에 요약했다.AppDelegate 내의 글로벌 위임 클래스 만들기

AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, SomeFrameworkDelegate, OtherFrameworkDelegate> 


…other init stuff 

  • AppDelegate.m는 SomeFrameworkDelegateOtherFrameworkDelegate 방법을 포함합니다.
  • 이러한 방법은 주로 서비스와 연결/연결 끊김과 같은 메시지를 출력합니다.

    MainViewController은 이러한 위임 방법과 재료를 수행합니다.

  • 연결/연결 해제시 UI 작업을 수행하십시오. 등

DetailsViewController는

  • 는 MainViewController에서와 동일한 재료를 사용합니다.

참고 :

  • 나는 그때 다른 UI 코드에서, 나는 AppDelegate에의 인스턴스를 생성 할 거라고는 AppDelegate에 전역 변수를 설정하는 거라고 가정

    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate]; appDelegate.isConnected = ... appDelegate.serviceName = ...

어떻게 승 감지 것 메시지가 대리자 메서드에 도착합니까? NSNotificationCenter/NSTimer?

위임 메소드가 실행되면 알림을 게시하거나 appDelegate에서 변수를 폴링하는 타이머를 만듭니다.

+0

그런 뜻입니까? AppDelegate에 몇 가지 변수가 있으며 값을 변경할 때 다른 클래스에 알림을 보내시겠습니까? 그렇다면 KVC를 사용해야합니다. 그렇지 않으면 질문을 완전히 이해하지 못합니다. –

+0

대리자 메서드의 값을 변경하기 때문에 거기에 알림을 게시 할 수 있습니다. 그렇게하면 관심있는 View 컨트롤러가 모두 그에 대한 알림을 받게됩니다. –

답변

1

응용 프로그램 대리인에서 연결을 처리하거나 관리하려고하는 것 같습니다. AppDelegate의 목적은 applicationdidbecomeactive/applicationwillenterforeground와 같은 응용 프로그램 수준 이벤트에 응답하는 것입니다. 내 추천은 당신이 당신의 연결을 관리하는 싱글 톤을 만드는 것입니다. 이것은 일반적으로 sharedInstance 패턴을 참조합니다. 이 싱글 톤은 managedObject의 델리게이트 함수를 구현해야합니다. 구현 된 후에 몇 가지 옵션이 있습니다.

(http://nshipster.com/nsnotification-and-nsnotificationcenter/), 나는 NSNotification를 사용하는 것이 좋습니다. 개체의 속성에 대한 모든 변경 사항을 통보 받으려면 KVO를 사용해야합니다.

0

정말로 자신의 질문에 답변했습니다. 트리거 될 때 위임 메서드에서 알림을 게시하려면 NSNotificationCenter을 사용합니다. 그런 다음보기 컨트롤러에서 해당 알림을 관찰하고 응답하십시오.