Я пытаюсь создать собственное alertView (для iOS7 +) самостоятельно, но я борюсь с презентацией alertView.Представить прозрачный модальный UIViewController
У меня есть 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 удаляется из фона.
Если вместо этого вызывается [transitionContext completeTransition:YES];
, то представляющий VC находится в фоновом режиме, но модальный VC удаляется в конце анимации, поэтому я предполагаю, что контекст отменяет презентацию, если мы отправим «NO».
Есть ли способ сохранить отображающий VC в фоновом режиме без необходимости сделать его снимок и установить его в качестве фона для просмотра модального VC?
Возможный дубликат http://stackoverflow.com/questions/22003967/is-it-possible-to-use- ios-7-uiviewcontroller-transitions-interactive-specificical/22285013 # 22285013? –
vc.modalPresentationStyle = UIModalPresentationOverFullScreen; –