我正在实现我自己的自定义UIViewController
转换,并且当我向调试器输出TO视图控制器的帧时,我收到初始帧和最终帧的{{0, 0}, {0, 0}}
。我认为上下文中的方法应该显示最终转换之后的预期帧,以及转换之前的初始帧。UIViewControllerContext initalFrameForViewController&finalFrameForViewController为所有值显示0
这是应该如何工作?
-(void)startInteractiveTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
CGRect initialToFrame = [transitionContext initialFrameForViewController:toVC];
CGRect finalToFrame = [transitionContext finalFrameForViewController:toVC];
NSLog(@"initialToFrame: %@, finalToFrame: %@", NSStringFromCGRect(initialToFrame), NSStringFromCGRect(finalToFrame));
}
调试器表示: initialToFrame: {{0, 0}, {0, 0}}, finalToFrame: {{0, 0}, {0, 0}}
另外,调试器也呈现出以下警告。这是否会影响错误?
Presenting view controllers on detached view controllers is discouraged
文档说,当视图尚未显示在屏幕上或者在转换过程中完全覆盖时,这些方法可以返回'CGRectZero'。也许其中之一就是你的情况。 –
我有同样的问题,并且我没有您收到的调试消息。 – bogardon
set'modalPresentationStyle = UIModalPresentationFullScreen;' – bogardon