iOS - Как отправить ссылку на MapView, вложенную в UITabBarController - PullRequest
0 голосов
/ 16 марта 2011

Это может быть простой вопрос, но я переместил одно из моих приложений из приложения на основе представления в приложение на основе окна.В исходном приложении у меня было одно представление с контроллером представления и картой.У меня был класс, который анализировал некоторые данные и отправлял их в контроллер представления.Я использовал следующий код из ClassA для отправки данных в ClassB, который добавил аннотацию.

AnnotationProblemAppDelegate *appDelegate = (AnnotationProblemAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.viewController loadOutAnnotations];

Я не могу выделить контроллер представления, поскольку он создаст новый экземпляр контроллера представления.Мне нужно передать ссылку на контроллер представления при создании ClassA.

Теперь, когда представление карты вложено в UITabBArController, я не уверен, как именно передать ссылку из ClassA в ClassB с картой.Нужно ли добавлять новый метод делегата или инициировать протокол?Я надеюсь, что это достаточно информации.Дайте мне знать, если я смогу уточнить еще.

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

1 Ответ

0 голосов
/ 17 марта 2011

Я понял это сам. Чтобы вызвать [[UIApplication sharedApplication] делегат], мне пришлось несколько закодировать, чтобы все связать в моем оконном приложении. Я выполнил следующие шаги, чтобы все подключить:

  1. Я ссылался на класс в MyAppDelegate.h до @ interface

    @ class MyClass

  2. Объявите IBOutlet для моего класса

    IBOutlet MyClass * myClass;

  3. Сделать мой IBOutlet свойством

    @ свойство (неатомное, сохранение) IBOutlet MyClass * myClass;

  4. Синтезировать свойство (не забудьте также освободить его)

    @ synthesize myClass;

  5. Подключите IBOutlet к контроллеру представления в Интерфейсном Разработчике. В моем приложении, которое содержало контроллер панели вкладок и контроллер навигации внутри контроллера панели вкладок, я должен был убедиться, что IBOutlet перешел к контроллеру представления, который был вложен в контроллеры навигации.

  6. Наконец, чтобы сослаться на myClass в любом из моих других классов, я вызвал UApplication sharedApplication со следующим кодом:

    MyAppDelegate * appDelegate = (MyAppDelegate *) [[UIApplication sharedApplication] делегат]; [appDelegate.myClass methodBeingCalled];

Надеюсь, это поможет, если вы столкнетесь с той же проблемой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...