2012-04-17 4 views
1

У меня есть UITabBarController, управляющий паролем MKMapViews. Как я буду сохранять свое состояние настойчиво друг с другом? Я попытался настроить одноэлементный шаблон, но они все еще независимы.UITabBarController с несколькими MKMapViews

+0

Что вы подразумеваете под "state persistent"? Вы хотите иметь тот же регион во всем своем MKMapView? Итак, когда изменились области Tab A, вы также хотите изменить область вкладок B? –

+0

Да! Любое изменение одного повлияет на другое. Такие же аннотации, одна и та же область, один и тот же диапазон и т. Д. – user1339608

ответ

2

Я вижу два возможных решения для вашей проблемы

  1. Вы один экземпляр (1x) MKMapView в контроллере (возможно одиночки). Скажем, в вашем AppDelegate у вас есть один экземпляр MKMapView.

    • Вы используете UIViewController экземпляр на одну вкладку (так:.. Многие UIViewControllers, но только один MKMapView в контроллере
    • Вы слушать - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController на свой контроллер TabBar делегат
    • , когда пользователь изменяет вкладку, вы поместите единственные (1x) MKMapView на появляющемся зрении UIViewController в.
    • Но здесь вы будете иметь одинаковое содержание (аннотации, регионы, данные на всех)

  2. Вы можете синхронизировать многие MKMapView

    • Слушайте делегатов MKMapView (– mapView:regionWillChangeAnimated: и т.д.) и синхронизировать значения для вас другие MKMapViews. Вам необходимо сделать это с помощью уведомлений (NSNotification) или с помощью контроллера.
    • Это даст вам больше гибкости, которые вы хотите синхронизировать, и какие значения должны отличаться от MKMapView до MKMapView.
+0

Спасибо человеку! Я был на полпути через реализацию 1), но я не мог вспомнить, какие сообщения делегатов нужно слушать. 2) выглядит более элегантным решением, хотя я пойду с этим. – user1339608

Смежные вопросы