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などで教えていただけると嬉しく思います。
また、プログラムの間違っている点など、
指摘いただけると大変助かります。
長くなりましたが、
よろしくお願いいたします。