Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【watchOS2】Timetravelを実装したComplicationをタップした時の情報を取得する方法

909 views

Published on

【watchOS2】
Timetravelを実装したComplicationをタップした時の情報を取得する方法です。
shibuya.swift #3 で発表する資料です。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

【watchOS2】Timetravelを実装したComplicationをタップした時の情報を取得する方法

  1. 1. 【watchOS2】 Timetravelを実装したComplicationを タップした時の情報を取得する方法 @mogmet 2016/03/01 shibuya.swift #3
  2. 2. About me • twitter: @mogmet • 好物:iOS, php, MySQL, Oracle • 仕事:インフラエンジニア→iOSエンジニア→フリーランスなDBA • ブログとか: http://mogmet.com/ • 作ったアプリたち↓ ワンナイト人狼 for iPhone STARBUCKSHOLIC 2度目の発表の場でも 緊張してます(確信 )
  3. 3. おさらい
  4. 4. what is Complication?
  5. 5. what is Timetravel?
  6. 6. http://www.culpeperfamily.com/wp-content/uploads/2015/02/back-to-the-future.jpg
  7. 7. http://img.tiqav.com/5KF.jpg
  8. 8. 本題
  9. 9. Complicationはタップすると 、watchアプリが 起動します。
  10. 10. http://www.recruit.jp/news_data/release/img/20150424_01.jpg
  11. 11. だがしかし http://futtsu.co/wp-content/uploads/dagashikashi_01-600x338.jpg
  12. 12. CLKComplicationDataSourceの中 にタップイベントを取得する ようなメソッドが見当たらない! ! タイムトラベルで選んだ情報を表示したいのに!
  13. 13. 解決策を探してみた http://pic.prepics-cdn.com/kaito19971031/16677605.jpeg
  14. 14. 答えは遷移した先に あった
  15. 15. WKInterfaceController 一画面の描画を担当するコントロールクラス
  16. 16. handleUserActivity( userInfo: [NSObject :AnyObject]?)
  17. 17. Handsoffとかから起動 された時に呼ばれたりする メソッドだが
  18. 18. Complicationから呼ば れた時にも呼ばれる!
  19. 19. userInfo[CLKLaunchedTim elineEntryDateKey]
  20. 20. Timetravel中にタップした Complicationの 時間が取れる!
  21. 21. Sample Demo https://github.com/mogmet/SGComplicationSample/
  22. 22. DemoではuserInfoから とれる時間をキーとして データを引っ張ってきている 。
  23. 23. override func handleUserActivity(userInfo: [NSObject : AnyObject]?) { super.handleUserActivity(userInfo) let tapDate = userInfo?[CLKLaunchedTimelineEntryDateKey] as? NSDate ?? NSDate() self.ending = WorldLine.endings.filter { $0.time.isEqualToDate(tapDate) }.first self.reloadView() } https://github.com/mogmet/SGComplicationSample/blob/master/SGComplicationSample%20WatchKit%20Extension/InterfaceController.swift
  24. 24. 無事タップしたComplication との紐付きができるように なりました!!
  25. 25. もっといい方法あった ら教えて下さい 99%E3%81%88%E3%81%A6%E3%83%BB%E3%83%BB%E6%95%99%E3%81%88%E3%82%8D%E3%83%BB%E3%83%BB%E6%95%99%E3%81%88%E3%81%AD%E3%81%88%E3%81%8B%E3%80%81%E3%81%93%E3%
  26. 26. まとめ
  27. 27. Timetravelからの情報が欲しか ったらhandleUserActivityメソ ッドのuserInfoを使おう!
  28. 28. Thank you for listening!

×