iPhone SDK - Отображение UIView из приложения Applegate через UIViewController - PullRequest
2 голосов
/ 08 декабря 2011

Надеюсь, мой заголовок имеет смысл.

У меня есть приложение для iPhone, использующее стандартный подход UINavigationController для добавления новых контроллеров представления и предоставления пользователю возможности перемещаться по своему усмотрению.

Теперь, в моем AppDelegate у меня есть метод, который работает по таймеру, который вызывает веб-сервис. Если этот сервис возвращается с определенным ответом, я хочу иметь возможность отображать UIView (по сути, настраиваемое окно оповещения, но я не хочу использовать класс UIAlertView).

Как я могу заставить этот UIView (определенный в AppDelegate) отображать на UIWindow - и, следовательно, поверх любого и всех видов, которые были выдвинуты навигационным контроллером?

Ответы [ 3 ]

6 голосов
/ 08 декабря 2011

Ваш AppDelegate должен иметь свойство window. Окно это вид, поэтому вы можете сделать [self.window addSubview:newView];

Примечание: также UIViews, которые добавляются в иерархию представления приложения, имеют свойство window, указывающее на тот же объект. Таким образом, контроллер представления может достичь окна, не имея дело с делегатом приложения.

[controller.view.window addSubview:overlayView];

Убедитесь, что это после того, как вы установили rootViewController. Также вам может понадобиться [self.window bringSubviewToFront: newView]

1 голос
/ 08 декабря 2011

Я думаю, вам нужен этот:

[UIApplication.sharedApplication.delegate.window addSubview:yourViewController.view]
1 голос
/ 08 декабря 2011

Вы, вероятно, хотите захватить самый верхний контроллер представления в стеке контроллера навигации, а затем использовать его для представления модального нового представления ... установить ссылку в пользовательском представлении предупреждений, чтобы он мог отклонить себя ...

CustomAlert * alert = [[CustomAlert alloc] initWithwhatever];
UIViewController * currentVC = navigationController.topViewController;
alert.delegate = currentVC;
[currentVC presentModalViewController:alert animated:YES];


//then dismiss from the alert logic with 

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