Mapcall в IOS5 с раскадровкой - PullRequest
       25

Mapcall в IOS5 с раскадровкой

1 голос
/ 22 января 2012

Я работаю над приложением iphone в IOS5, которое использует раскадровки пользователя.Я создал раскадровку, которая использует mapkit с выносками аннотаций.Мне удалось подключить push-сегменты для кнопок и выбора строк таблицы с помощью редактора раскадровки.У меня есть опыт работы с пользовательскими выносками в MapKit, но я не могу понять, как выдвинуть контроллер выносок, определенный в раскадровке, из выноски.Я собирался использовать [self.navigationController pushViewController:abc animated:YES], однако для этого мне нужно либо получить контроллер представления из раскадровки, либо инициализировать новый контроллер представления.У меня нет доступа к имени NIB, так как нет имени NIB.Как получить доступ к экземпляру ViewController, определенному в раскадровке?Есть ли какой-нибудь способ использовать редактор раскадровки, чтобы связать PUSH Seques с выноской пользовательской аннотации карты?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 мая 2012

Я добавил кнопку и выполнил управление, перетащив ее в контроллер вида.После этого я использую скрытое свойство кнопки, чтобы убедиться, что она скрыта.Вы не можете просто управлять перетаскиванием вида карты на другой контроллер вида.Вы должны использовать кнопку для этого.Удостоверьтесь, что вы указываете свой идентификатор.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    [self performSegueWithIdentifier:@"detailSegue" sender:view];
}
1 голос
/ 22 января 2012

Вы можете создавать переходы между контроллерами представления, которые программно выполняются путем перетаскивания элемента управления из одного контроллера представления в другой. Затем в методе MKMapViewDelegate, - (void)mapView:annotationView:calloutAccessoryControlTapped:, вы можете программно выполнить переход, если вы указали идентификатор в раскадровке.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    // I've chosen to pass the annotation view as the sender here.
    // I'm assuming this view controller will be configured with data that
    // is backing the annotation view. By passing the view, you will be able
    // to inspect it and it's backing annotation in `prepareForSegue:sender:`
    [self performSegueWithIdentifier:@"ShowSomeViewController" sender:view];
}
...