【发布时间】:2015-04-27 22:59:58
【问题描述】:
我有一个容器视图控制器,它使用以下代码从一个子视图控制器转换到另一个子视图:
- (void)switchToNewViewController:(UIViewController *)newController {
[self
transitionFromViewController:self.currentViewController
toViewController:newController
duration: 0.6
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
newController.view.frame = self.currentViewController.view.frame;
}
completion:^(BOOL finished) {
[self.currentViewController removeFromParentViewController];
[newController didMoveToParentViewController:self];
self.currentViewController = newController;
}
];
}
- (UIViewController*)childViewControllerForStatusBarStyle
{
return self.currentViewController;
}
当第一个视图控制器更喜欢状态栏中的深色文本但下一个视图控制器更喜欢浅色文本时,我遇到了问题。
第一个视图控制器:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
第二个视图控制器:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
我在第一个和第二个视图控制器的preferredStatusBarStyle 中都设置了一个断点。调试器只在第一个视图控制器上中断,但不在第二个视图控制器上。因此,状态栏样式不会改变。我如何通知 Cocoa 框架它需要读取第二个视图控制器的首选项?
【问题讨论】:
标签: ios cocoa-touch uistatusbar