地図アプリ:アイコンごとにリンクURLを変更する。
Posted: 2012年12月14日(金) 20:16
以前、地図アプリ作成について質問させていただきました。
http://dixq.net/forum/viewtopic.php?t=11879
再び、壁にあたってしまったので、質問させてください。
よろしくお願いいたします。
地図にアイコンを立て、
アイコンをクリックするとバルーンが表示され、
バルーンに実装したボタンをタップすると
特定のWebページを表示する新しい画面へ遷移する。
というアプリを作成しています。
新しい画面へ遷移し、Webページを表示したり、
戻るボタンを実装して、元の地図画面へ戻ったりするところまでは
完成させることができました。
(アドバイスを下さって、本当にありがとうございました。)
この、表示するWebページのURLを、
選択したアイコンによって変更したいのですが、
どのように行えば良いか、分かりません。
まず、以下に、現在作成したコードを添付させて頂きます。
幾つかのクラスを作成しており、
それを読み込むメインの ViewController.m のコードです。
lat(緯度)lon (経度)
level (アノテーションタイトル)
comment (アノテーションサブタイトル)
urlnum (WebURL) にはあらかじめ数値や文字のデータが格納されています。
この、urlnum(string型)の文字を元に、
の中でURLを設定し表示したいのですが、できません。
アノテーションのタイトルやサブタイトルは
annotationView.annotation.title 又は annotationView.annotation.subtitle
とプログラムすれば呼び出すことができるのですが、
URLは同様に annotationView.annotation.url と記述しても呼び出すことができません。
なぜ、タイトルやサブタイトルが呼び出すことができるのに、
URLは呼び出すことができないのでしょうか?
参考になるサイトのURLなどで教えていただけると嬉しく思います。
また、プログラムの間違っている点など、
指摘いただけると大変助かります。
長くなりましたが、
よろしくお願いいたします。
http://dixq.net/forum/viewtopic.php?t=11879
再び、壁にあたってしまったので、質問させてください。
よろしくお願いいたします。
地図にアイコンを立て、
アイコンをクリックするとバルーンが表示され、
バルーンに実装したボタンをタップすると
特定のWebページを表示する新しい画面へ遷移する。
というアプリを作成しています。
新しい画面へ遷移し、Webページを表示したり、
戻るボタンを実装して、元の地図画面へ戻ったりするところまでは
完成させることができました。
(アドバイスを下さって、本当にありがとうございました。)
この、表示するWebページのURLを、
選択したアイコンによって変更したいのですが、
どのように行えば良いか、分かりません。
まず、以下に、現在作成したコードを添付させて頂きます。
幾つかのクラスを作成しており、
それを読み込むメインの ViewController.m のコードです。
//アノテーションのタイトル・サブタイトル・URLを設定するクラス MyAnnotation.h をインポート
//Webページを表示するクラス WebViewController.h をインポート
@interface FirstViewController ()
@end
@implementation FirstViewController
@synthesize Map;
- (void)viewDidLoad
{
[super viewDidLoad];
[Map setDelegate: self];
// 地図表示の設定
Map.frame = self.view.bounds;
Map.mapType = MKMapTypeStandard;
Map.showsUserLocation = YES;
[self.view addSubview:Map];
[Map.userLocation addObserver:self
forKeyPath:@"location"
options:0
context:NULL];
for (i=1; i<=10; i++) {
//アノテーションをマップに追加
MyAnnotation *annotation;
CLLocationCoordinate2D location;
location.latitude = lat[i];
location.longitude = lon[i];
annotation =[[MyAnnotation alloc] initWithCoordinate:location];
annotation.title = level[i];
annotation.subtitle = comment[i];
annotation.url = urlnum[i]; //☆☆
[self.Map addAnnotation:annotation];
}
}
//アノテーション追加
-(MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
//略。アノテーションを追加するプログラム//
}
//タップされた時の処理
- (void) mapView:(MKMapView*)_mapView annotationView:(MKAnnotationView*)annotationView calloutAccessoryControlTapped:(UIControl*)control {
NSString *photourl = @"http://…"; //ここで、num[i]を元にurlを設定したい。
PhotoViewController* web = [[WebViewController alloc] initWithUrlString:photourl];
web.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
UINavigationController *NavigationController =
[[UINavigationController alloc] initWithRootViewController:web];
[self presentModalViewController:NavigationController animated:YES];
}
@end
lat(緯度)lon (経度)
level (アノテーションタイトル)
comment (アノテーションサブタイトル)
urlnum (WebURL) にはあらかじめ数値や文字のデータが格納されています。
この、urlnum(string型)の文字を元に、
- (void) mapView:(MKMapView*)_mapView annotationView:(MKAnnotationView*)annotationView calloutAccessoryControlTapped:(UIControl*)control {
}
アノテーションのタイトルやサブタイトルは
annotationView.annotation.title 又は annotationView.annotation.subtitle
とプログラムすれば呼び出すことができるのですが、
URLは同様に annotationView.annotation.url と記述しても呼び出すことができません。
なぜ、タイトルやサブタイトルが呼び出すことができるのに、
URLは呼び出すことができないのでしょうか?
参考になるサイトのURLなどで教えていただけると嬉しく思います。
また、プログラムの間違っている点など、
指摘いただけると大変助かります。
長くなりましたが、
よろしくお願いいたします。