我希望有人可以提供帮助:
我已经为iPhone 5移植了我的应用程序。所有视图都只是横向,我在IB中将宽度设置为568像素。应用程序启动时,主视图正确显示全宽。但是当我使用presentViewController调用SettingsView时,它显示为460像素/ 3.5“模式。当我关闭SettingsView时,主视图的工具栏现在也缩小到460像素。但是我绘制的图形仍然是568像素宽。
我在Settings视图的Controller的viewDidLoad方法中做了一个NSLog(@“%f”,self.view.frame.size.width),它输出568.0,这意味着视图本身“知道”它是568宽。它仍然只显示460px。
这是代码 - 虽然没有什么花哨的......
- (IBAction) showSettingsView
{
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipSideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:controller animated:YES completion:nil] ;
[controller release];
}
- (void)flipsideViewControllerDidFinish:(id)controller
{
[self dismissViewControllerAnimated:YES completion:nil] ;
}
我在Apple开发论坛上发布了同样的问题,但还没有得到答案: enter link description here
这发生在iPhone 5设备和模拟器中。 有什么想法吗?
答案 0 :(得分:1)
将MainWindow.xib中的MainWindow设置为“启动时全屏”,并将Metrics尺寸模拟为“Retina 4 Full Screen”。
答案 1 :(得分:1)
如果你没有为UIWindow
使用xib,而是在ViewController的视图中使用xib
_settingsController = [[CNPSettingsViewController alloc] initWithNibName:@"CNPViewController" bundle:nil];
[_settingsController setDelegate:self];
[_settingsController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
//this line solved the problem for me
[_settingsController.view setBounds:[[UIScreen mainScreen] bounds]];