watchOS 2
및 Xcode 7.3
을 사용 중입니다. 시계 app에는 3 개의 인터페이스 컨트롤러 (IC)가 있습니다. "[WCSession defaultSession] sendMessage"
메서드를 사용하여 3 가지 다른 환경에서 AppDelegate의 3 개 IC에 메시지를 보내고 있습니다. 수신 방법은 3 가지 IC 모두에서 제공됩니다. 그러나 메시지는 대부분 3 차 IC에서 수신됩니다. 특정 IC에서 메시지를 수신하려면 어떻게해야합니까?AppDelegate에서 "[WCSession defaultSession] sendMessage"를 사용하면서 watchOS 2의 특정 인터페이스 컨트롤러에서 메시지를받는 방법
Q
AppDelegate에서 "[WCSession defaultSession] sendMessage"를 사용하면서 watchOS 2의 특정 인터페이스 컨트롤러에서 메시지를받는 방법
0
A
답변
2
"네트워킹"및 모델 작업을 수행하는 인터페이스 컨트롤러가있는 지금 당장 재 설계하는 것이 좋습니다.
내 권장 접근 방식은 WCSession 대리인 인 "지속성 관리자"를 만드는 것입니다. 수신 된 모든 데이터가 지속되고 관찰자 또는 알림 패턴을 사용하여 코드의 다른 부분에 변경 사항이 통보됩니다. 그런 다음 UI 쿼리와 관련된 항목이 업데이트되면 (테이블 행에 새 항목 추가, 새 항목 추가 등) 해당 데이터 쿼리를 다시 실행하고 해당 UI를 업데이트합니다.
인터페이스 컨트롤러의 복잡성 감소, 관심사의 분리 등의 많은 이점이 있습니다. 하지만 가장 중요한 것은 확장 기능이 백그라운드에서 실행될 수 있지만 (인터페이스 컨트롤러가 표시되지 않는 곳에서도) 데이터를 수신하고 지속하며 다음에 애플리케이션을 시작할 때 활용할 수 있다는 것입니다.
1
내가 보낸 사전의 키를 확인할 수 있습니다. 세 가지 다른 키를 사용하여 올바른 인터페이스 컨트롤러에 맞는 키인지 확인할 수 있습니다.
0
는 시계 앱 확장에 ExtensionDelegate.m에서 didReceiveMessage 방법을 지정합니다. 메시지가 의도 된 인터페이스 컨트롤러의 이름을 sendMessage 메쏘드에 전달하십시오. if-else 조건에서 알림 센터를 사용하여 의도 한 인터페이스 컨트롤러의 메소드를 호출하십시오.
관련 문제
- 1. didReceiveApplicationContext 메서드 백그라운드에서 WatchOS/WatchConnectivity
- 2. AppDelegate에서 특정 컨트롤러를 얻는 방법
- 3. 특정 포트로 문자 메시지를받는 방법 ..
- 4. Tiva 2의 I2C 인터페이스
- 5. AppDelegate에서 특정 탭보기를 열 수있는 방법
- 6. WatchOS 3 용 시계 응용 프로그램의 스냅 샷으로 WatchOS 2의 기존 glance 화면 사용
- 7. WatchOS 2에서 기존 프로젝트를 WatchOS 3으로 마이그레이션하는 방법
- 8. 각도 2의 인터페이스 구현 반복?
- 9. C#에서 Sendmessage를 사용하는 방법?
- 10. F #에서 SendMessage를 사용하는 방법?
- 11. appDelegate에서 UIViewController를 푸시하는 방법
- 12. AppDelegate에서 navController를 얻는 방법.
- 13. appDelegate에서 rootViewController를 다시로드하는 방법
- 14. 모델에서 오류 메시지를받는 방법
- 15. 예외 메시지를받는 방법?
- 16. 오류 메시지를받는 방법?
- 17. MSMQ 메시지를받는 방법
- 18. nant.onfailure에서 오류 메시지를받는 방법
- 19. MessageQueue에서 메시지를받는 방법
- 20. stdin에서 배우 메시지를받는 방법?
- 21. 경고 메시지를받는 방법?
- 22. CL 프로그램에서 메시지를받는 방법?
- 23. Laravel의 리디렉션에서 메시지를받는 방법
- 24. WCSession 페이로드에서 NSDate를 전달하는 문제
- 25. 보기 컨트롤러에서 인터페이스 빌더 객체에 액세스
- 26. UINavigationBar 취소 또는 완료 단추의 메시지를받는 방법?
- 27. struts 2의 특정 폴더에 파일을 업로드하는 방법
- 28. Swift 2의 상위 컨트롤러에서 컨테이너보기 컨트롤러에 액세스
- 29. 젠드 2의 컨트롤러에서 함수에 어떻게 액세스합니까?
- 30. Silex 2의 다른 컨트롤러에서 변수 가져 오기