2010-09-05 2 views
1

Я собираю несколько методов утилиты для тестирования, и я хотел бы, чтобы вы могли отображать представление из произвольного метода - тот, который не обязательно знает о любые UIViewControllers или окна. Это возможно?Отображение вида из произвольного метода на iPhone

Например, я готовлю настраиваемую прокладку менеджера местоположений, чтобы я мог вручную вводить данные о местоположении во время тестирования. Я хотел бы, чтобы некоторые из методов отображали MKMapView, чтобы я мог выбрать «текущее местоположение» вместо того, чтобы вручную вводить значения lat/long в коде.

ответ

1

Принимая советы @ vodkhang Я заглянул в код и создал свою собственную категорию (UIView + ShowThySelf), чтобы вскрыть любой произвольный вид из любого метода. Для тех, кто интересуется его можно найти на GitHub

http://github.com/appsinyourpants/Pants-Framework

+0

спасибо, хорошая работа, мне они понадобятся иногда :) – vodkhang

1

Я думаю, что это возможно, даже если я точно не знаю, как это сделать. Причина, по которой я знаю, что это возможно, потому что я вижу FBConnect Facebook и DDSocialLoginDialog Библиотека выполняет то, что вы описываете.

Исходный код и архитектура FBConnect довольно сложны, но DDSocialLoginDialog легко получить и вытащить нужный вам исходный код (2 класса с 4 файлами и несколькими сотнями строк кода). Оба они с открытым исходным кодом. Затем я надеюсь, что вы можете изменить исходный код, чтобы он мог добавить MKMapView в качестве подкатегория

1

Резюме ранее упомянутых методов, в случае, если вы хотите, чтобы свернуть свой собственный код:

Создать UIControl. Напишите способ отклонения этого элемента управления и добавьте его в качестве цели для этого элемента управления. Поместите вид, который вы хотите всплывать внутри этого элемента управления, как подвью. Использование:

[UIApplication sharedApplication] keyWindow] 

или (в редких случаях, ваше приложение имеет более одного окна, например, поддержка VGA кабеля):

[[[UIApplication sharedApplication] windows] objectAtIndex: 0] 

, чтобы найти место, где можно добавить подвид (элемент управления создано). Добавьте его.