我正在开发基于故事板的应用程序(iPhone)。应用程序有一个导航控制器开始。我们正在与它集成一个现有的应用程序。因此,我们需要在单击按钮时加载 NIB 文件。
NSBundle *someBundle = [NSBundle category_bundle ];
MainWindow *aViewController = [[MainWindow alloc]
initWithNibName:nibName
bundle:someBundle];
[self.navigationController pushViewController:aViewController animated:YES];
现有应用程序然后加载另一个 VC。
[[self navigationController] pushViewController:mySecondView animated:YES];
这一观点再次来自NIB。
然后,此视图使用单例获取 MainWindow 的实例(在第一步中加载)并请求它显示模式视图。“糟糕的设计”,但我无法更改它,因为这是一个现有的应用程序,我需要明天提供集成。
模态显示为 -
[self presentModalViewController:aModal animated:YES];
我们正在横向打开模式,为此我们在其 viewWillAppear 中使用此代码-
[UIApplication sharedApplication].statusBarOrientation = self.interfaceOrientation;
并且在viewDidDisappear
if (SYSTEM_VERSION_LESS_THAN(@"5.0")) {
[UIApplication sharedApplication].statusBarOrientation = self.parentViewController.interfaceOrientation;
} else {
[UIApplication sharedApplication].statusBarOrientation = self.presentingViewController.interfaceOrientation;
}
问题:
问题是在模式弹出窗口关闭后,MainWindow 的 UIView 向上移动了 20px。我试图重置框架。还尝试隐藏状态栏,但状态栏部分隐藏了导航栏,为了解决此问题,我们尝试在状态栏可见后隐藏导航栏,然后再次显示,但没有成功。
请让我知道如何解决此问题。