Я пытаюсь создать собственное alertView (для iOS7 +) самостоятельно, но я борюсь с презентацией alertView.
У меня есть UIViewController с черным фоном (альфа, установленным на 0.25f), и alertView как subview.
Когда я хочу показать 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];
я вызываю [transitionContext completeTransition:YES];
, представляющий VC находится в фоновом режиме, а модальный VC удаляется в конце анимации, поэтому я предполагаю, что контекст отменяет презентацию, если мы отправляем "NO".
Есть ли способ сохранить отображающий VC в фоновом режиме, не делая его моментального снимка и задав его как фон модального просмотра VC?