Я пытаюсь создать собственный alertView (для iOS7 +) самостоятельно, но у меня проблемы с представлением alertView.
У меня есть UIViewController с черным фоном (альфа установлена на 0,25f) и alertView в качестве подпредставления.
Когда я хочу показать alertView, я модально представляю viewController:
-(void) show
{
UIWindow* window = [[UIApplication sharedApplication] keyWindow];
self.modalTransitionStyle = UIModalPresentationCustom;
self.transitioningDelegate = self;
[window.rootViewController presentViewController:self animated:YES completion:nil];
}
А вот и мой объект-аниматор:
-(NSTimeInterval) transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext
{
NSLog(@"%s",__PRETTY_FUNCTION__);
return 2;
}
-(void) animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
NSLog(@"%s",__PRETTY_FUNCTION__);
UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
toView.alpha = 0;
UIView* container = [transitionContext containerView];
[container addSubview:toView];
[UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{
toView.alpha = 0.5;
} completion:^(BOOL finished) {
[transitionContext completeTransition:YES];
}];
}
Дело в том, что модальный VC исчезает вместе с представляющим VC в фоновом режиме, как и предполагалось, но когда анимация заканчивается, представляющий VC удаляется из фона.
Если вместо этого я вызываю [transitionContext completeTransition:YES];, представляющий VC находится в фоновом режиме, но модальный VC удаляется в конце анимации, поэтому я предполагаю, что контекст отменяет презентацию, если мы отправим «НЕТ».
Есть ли способ сохранить представляющий VC в фоновом режиме без необходимости делать его снимок и устанавливать его в качестве фона для модального представления VC?