0

我希望有人能帮帮忙:

我已经为 iPhone 5 移植了我的应用程序。所有视图都是横向的,我在 IB 中将宽度设置为 568 像素。当应用程序启动时,主视图以全宽正确显示。但是当我使用 presentViewController 调用 SettingsView 时,它以 460 像素/3.5" 模式显示。当我关闭 SettingsView 时,主视图的工具栏现在也缩小到 460 像素。但是我绘制的图形仍然是 568 像素宽的。

我在控制器的设置视图的 viewDidLoad 方法中做了一个 NSLog(@"%f", self.view.frame.size.width) ,它输出 568.0 这意味着视图本身“知道”它是 568 宽。它仍然仅以 460 像素显示。

这是代码 - 虽然没什么特别的......

- (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 开发论坛上发布了同样的问题,但还没有得到答案: 在此处输入链接描述

这发生在 iPhone 5 设备和模拟器中。有任何想法吗?

4

2 回答 2

1

将 MainWindow.xib 中的 MainWindow 设置为“启动时全屏”,并将模拟的 Metrics 大小设置为“Retina 4 全屏”。

于 2012-10-03T11:35:19.753 回答
1

如果你不使用 xib UIWindow,而是使用 xibs 作为 ViewController 的视图

_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]];
于 2012-12-04T15:00:23.787 回答