2011-01-29 5 views
1

내 질문으로 시작한 다음 사람들이 그 질문을 이해하지 못할 경우를 대비하여 내가 무엇을하려하는지 설명하겠습니다.NSNotificationCenter에서 사용할 수있는 알림 이름 목록이 있습니까?

알림 센터를 사용하여 UITabBarController에서 이벤트를 수신하려고합니다. 탭이 변경된시기를 확인하려고합니다. 문서에서 델리게이트를 사용하면 해당 이벤트를 얻을 수 있음을 알 수 있습니다. 그러나, 내 TabBarController있는 두 개의 별도보기 컨트롤러가 있고 모두 활성 상태인지 알아야합니다. 해당 이벤트가 알림을 보내는 지 확인할 수있는 방법이 있습니까? 나 자신의 대표자를 만들고 자신에게 통지를 보내야합니까?

내 프로그램이 방향에 따라 다른보기가 있어야한다고 결정했을 때이 모든 것이 시작되었습니다. 필자는 두 개의 탭이있는 최상위에 탭 표시 줄이 있도록 프로그램을 작성했습니다. 하나는 프로그램이고 다른 하나는 "약"창입니다. 장치를 회전시킬 때 첫 번째 탭과 두 번째 탭에서보기를 변경해야합니다. 장치가 돌아 왔을 때 알려주는 장치 알림을 수신하여이 기능을 사용할 수있었습니다. 그런 다음 컨트롤러 방향을 기준으로 뷰를 변경합니다. 내가보고있는 문제는 두 컨트롤러가 이러한 알림을 받고 있으며 선택되지 않은 탭이 더 이상 이러한 알림을받지 못하는 방법을 찾지 못했다는 것입니다. 내 생각은 어떤 탭이 선택되었는지 듣고 회전 알림에서 다른 탭을 제거하는 것이 었습니다. 아직 작동하지 않습니다.

그래서 이것이 어떤 의미인지는 모르겠지만 사람들이 말하고 제안하는 것을 보게됩니다.

요점 정리 : 어떤 알림을 사용할 수 있는지 어떻게 알 수 있습니까? 대리인을 만들고 내 알림을 시작해야합니까? 회전시보기를 바꿀 수있는 더 좋은 방법이 있습니까?

+0

NSNotificationCenter는 대리인을 사용하지 않습니다. 그것은 관찰자를 사용합니다. 모든 클래스는 관찰자가 될 수 있습니다. 그냥 다음 라인을 사용하십시오 :'[NSNotificationCenter defaultCenter] addObserver : 셀렉터 : @selector (methodToExecute :) name : @ "aNotificationName"object : anObject];'미리 설정된 알림 이름 목록이 없습니다. 임의의 문자열을 사용할 수 있습니다. –

+0

알림이 옵서버와 다른 점을 알고 있습니다. 문자열 (알림의 이름)이 알리미가 보내는 항목과 일치해야합니까? 옵저버와 노티 파이어를 모두 실행하면 확실한 것을 선택할 수 있습니다. 옳은? 기본적으로 두 명의 대표를 사용하기 때문에 할 수있는 방법이 없습니다. – Shaolo

답변

0

UIApplication 통지 here을 찾을 수 있습니다.

또한, here을 찾을 수있는 다윈 알림을 사용할 수 있으며, 다윈 알림 사용 방법의 예는 here입니다.

또한 Apple 설명서에서 특정 클래스 (예 : class과 같이 아래로 스크롤)에 있는지 확인할 수 있습니다. UIApplication 예처럼 등록 할 수있는 알림도 있습니다.

행운을 빈다.

관련 문제