先週からMapkitを使用してロケーションチェックインの機能を作っています。

そこで少しハマったので記録しておきます。

1.アノテーションのバルーンをmapに表示

 

2.アノテーションのバルーンにボタンを追加する

MkAnnotationViewクラスでアノテーション内容を追加変更、ここでボタンの設定を行う

 

 

 

 

 

 

 

 

そして問題はここで発覚!!!!!!

ボタンをタップした際にDetail情報にアノテーションのtitlleやsubtitleを渡したいのだが、addTarget:action:@selectorではパラメータを自由に送る事が出来ない。

@selecter(detailInfo:title:subtitle:)とするとエラーで落ちる。

ボタンを送る事は出来るがアノテーションに追加したtitleを指定する事が出来ない。困った、困った…。

それで見つけたのが calloutAccessoryControlTapped:

 

 

 

 

 

3.アノテーションバルーンのボタンをタップしてDetail画面を表示

上記のmapView: annotationView calloutAccessoryControlTapped:を使うとタップした際に呼ばれてannotationView情報を得る事が出来る。

その後、annotationに問い合わせて他の内容も取得する

 

 

 

いやー、回答が見つかると簡単なのですが、ここまで来るのが大変。1日かかりました。

Truth is what stands the test of experience (真実とは、経験という試練に耐えるものの事である)アインシュタインの言葉が身にしみます。

ここ数年、イノベーションを捨て、マネジメントの世界にどっぷり浸かっていました。日本ではその人たちが優遇され、高額なお金が貰えるので、年を取るとどうしてもそちらの世界で仕事をする機会が増えます。

だけど、こうやってiphoneアプリを作っていると思います。マネジメントは所詮マネジメントで真実は何も分からないと…。

最近、スタートレックのエンタープライズを見ながらコーディングしています。船長のジョナサンアーチャーが良いんですよね。

最初見た時は、なにこいつ? すぐ感情的になってカッコわるいな〜と思って見ていました。

それがストーリー4ぐらいから、その意図を感じるようになりました。

今、ストーリー43まで見ましたが、すっかりファンです。船長にくせに好奇心旺盛ですぐに全面に立って行動します。そしてトラブルに巻き込まれ乗組員や自分の命を危機にさらします。そしてなんとか危機を乗り越え、異星人と友好を築きます。

日本にも、こんなリーダーがいたらなぁと思います。

彼が生まれるのは100年後の2112年です。その頃、日本は残ってないでしょうね。日本語を話す人達はいると思いますが…。

リーダーというのは、どういう時に、どんな場所に生まれるんでしょうね?

グローバルでは決してないでしょう。ローカルな世界でしょうね。ジョナサン船長はワープ5エンジンです。多分、日本を救うのも科学技術でしょう。マクロ経済なんてしょうむない話しはやめて、ワープエンジンと外交が好きな人です。いないかなぁ〜

まぁ、それは良いとして、位置情報の取得の停止って、どうやってするんでしょうか。下のコーディングを入れても停止してくれないんですが、誰かわかるかたいませんか〜

 

 

 

 

1件のコメント on Mapkitのアノテーションの設定方法

  1. あすか より:

    annotationView calloutAccessoryControlTapped:ってどこで使うんですか〜