iOS9:UIViewController:当 viewController 在第二个 UIWindow 中运行时,不会在拆分视图更改时调用 viewWillTransitionToSize

Posted

技术标签:

【中文标题】iOS9:UIViewController:当 viewController 在第二个 UIWindow 中运行时,不会在拆分视图更改时调用 viewWillTransitionToSize【英文标题】:iOS9: UIViewController: viewWillTransitionToSize is not called on split view changes when viewController is running in a second UIWindow 【发布时间】:2015-12-10 08:08:43 【问题描述】:

我的应用程序使用两个 UIWindows,第一个运行主应用程序,第二个运行一些要在前台显示的东西。两个窗口都有一个视图控制器。当我的应用程序的拆分视图大小发生变化时,会在主应用程序 UIViewController 上调用 viewWillTransitionToSize,但不会在第二个窗口的 viewController 上调用。当应用程序的方向改变时,这两种方法都会被调用。我该怎么办,两个 viewWillTransitionToSize 选择器都被调用了?

【问题讨论】:

【参考方案1】:

作为一种解决方法,我正在观察主应用程序窗口的大小...

[[UIApplication sharedApplication].delegate.window 添加观察者:自我 forKeyPath:@"帧" 选项:0 上下文:0];

...并更新第二个窗口内容的布局:

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id) 对象 改变:(NSDictionary *)改变 上下文:(无效*)上下文 if (object == [UIApplication sharedApplication].delegate.window) [自我更新布局];

【讨论】:

以上是关于iOS9:UIViewController:当 viewController 在第二个 UIWindow 中运行时,不会在拆分视图更改时调用 viewWillTransitionToSize的主要内容,如果未能解决你的问题,请参考以下文章

iOS9:在导航栏中隐藏 SegmentedControl 后,标题不出现

AVPlayer 不会在 iOS9 中播放来自 url 的视频

为许多 UIViewController 继承背景颜色和其他属性

iOS 9 willrotatetointerfaceorientation deprecated [重复]

在 Xcode 7 ios9 中正常时,UIScrollView 在 xcode8、ios10 中没有响应

ViewController 方向变化没有动画