2011-07-05 10 views
1

マップからプッシュされた詳細ビューがあります。注釈からタイトルとサブタイトルを取得して、詳細ビューに表示しようとしています。ナビゲーションバーにタイトルを表示することはできますが、UILabelsとして表示することはできません。 MapDetailInfoのインターフェイスビルダにUILabelsがすべて "名前"と "アドレス"に接続されていますが、ビューが押されたときに塗りつぶされません。ここに私のコードは次のとおりです。マイマップビューコントローラで注釈のタイトルとサブタイトルの詳細表示

私の詳細ビューコントローラで

- (void)mapView:(MKMapView *)mapView 
annotationView:(MKAnnotationView *)view 
calloutAccessoryControlTapped:(UIControl *)control 
{ 
    MapDetailInfo *abc = [[MapDetailInfo alloc]init]; 

    abc.title = view.annotation.title; 


    [self.navigationController pushViewController:abc animated:YES]; 



nameText.text = view.annotation.title; 
addressText.text = view.annotation.subtitle; 

} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

BusinessListingsPart3ViewController *blv = [[BusinessListingsPart3ViewController alloc] init]; 

name.text = blv.nameText.text; 
address.text = blv.addressText.text; 

}

すべてのヘルプははるかに高く評価されるだろう。ありがとう!

答えて

1

nameaddressは、この時点ではインスタンス化されません。その値はnilになります。

nameTextaddressTextをプロパティとして宣言し、このメソッドで設定し、後でviewDidLoadメソッドのラベルを更新します。現在の方法mapView:annotationView:calloutAccessoryTapped:において


MapDetailInfo.h

@interface MapDetailInfo: .... { 
    NSString * nameText; 
    NSString * addressText; 

    .... 
} 

@property (nonatomic, copy) NSString * nameText; 
@property (nonatomic, copy) NSString * addressText; 

.... 

MapDetailInfo.m

@implementation MapDetailInfo 

@synthesize nameText; 
@synthesize addressText; 

.... 

self.name.text = nameText; 
self.address.text = addressText; 
+0

を追加し、

abc.nameText = view.annotation.title; abc.addressText = view.annotation.subtitle; 

そしてMapDetailInfoviewDidLoad方法のある

abc.name.text= view.annotation.title; abc.address.text = view.annotation.subtitle; 

を交換は、すでにビュー・コントローラを押す以下のものを移動しようとしました。失敗。 – ADZBOT

+0

答えを更新しました。また、インターフェイス接続が正しく設定されていることを確認してください。 –

+0

私はあなたが何をしようとしているのか理解しています。いくつかのエラーが出ました...自分のコードを編集してエラーを取り除くことができました。ラベルはまだ空白になっています。私はそれらが正しく接続されていることを確認するために二重チェックをします。 – ADZBOT

関連する問題