Название и подзаголовок аннотации в подробном представлении - PullRequest
1 голос
/ 05 июля 2011

У меня есть подробный вид, который выталкивается с карты.Я пытаюсь получить заголовок и подзаголовок из аннотации для отображения в подробном представлении.Я могу получить название для отображения на панели навигации, но не могу отобразить их как UILabels.У меня есть UILabels в моем конструкторе интерфейса для MapDetailInfo, все они связаны с «именем» и «адресом», но они не будут заполняться при нажатии на представление.Вот мой код:

В контроллере представления моей карты

- (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 Ответ

1 голос
/ 05 июля 2011

Оба name и address не созданы в данный момент. Их значения будут nil.

Объявите nameText и addressText как свойства, задайте их в этом методе, а затем обновите метки в методе viewDidLoad.


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;

....

В текущем методе mapView:annotationView:calloutAccessoryTapped: заменить

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

с

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

И в методе MapDetailInfo viewDidLoad добавьте

self.name.text = nameText;
self.address.text = addressText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...