在我的 iPad 应用程序中,十分之二的测试人员报告了我无法在 iOS 6.1.2(iPad 和模拟器)上复制的问题。我的测试人员都在 6.0.1 上。这个问题只发生在大约 10% 的时间里,而且似乎在应用刚从后台返回时发生得更多。
问题是,当某个视图控制器以模态方式呈现时,使用情节提要 segues,有时,它不会在屏幕上居中。在那些时候,它似乎总是以 (0,0) 为中心:
现在,我实际上没有任何定位视图控制器的代码。我依靠 StoryBoard Segue 来定位和显示它。该segue的属性是:
- 风格:莫代尔
- 演示文稿:表格
- 过渡:交叉溶解
- 动画:是
(这些是在 IB 中设置的,而不是在代码中)。
我调用此视图控制器的代码部分是:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UISplitViewController *split = ((CVAppDelegate *)[[UIApplication sharedApplication] delegate]).splitViewController;
UINavigationController *navController = split.viewControllers[1];
NSInteger row = [self.tableView indexPathForSelectedRow].row;
if (row < [((CVAppDelegate *)[[UIApplication sharedApplication] delegate]).products count])
[navController.viewControllers[0] performSegueWithIdentifier:@"ShowPicker" sender:@(row)];
[_popover dismissPopoverAnimated:YES];
}
最后一点可能有帮助的数据是,这个 viewcontroller 是从一个 tableviewcontroller 调用的,它本身就是一个弹出框,并且在显示这个新的 viewcontroller 时被关闭。
关于为什么我从未见过这个问题,我已经没有想法了,但其他几个人每天都会看到一次左右(我离他们很远,所以我无法亲自调试)。我在想它可能是 iOS 版本号,或者他们的 iPad 的方向是纵向的,并且由于我的应用程序仅针对横向方向编写,因此 iPad 在调用之前具有或具有的方向会有所不同此视图或从后台运行应用程序...
任何想法,将不胜感激。