0

在我的 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 在调用之前具有或具有的方向会有所不同此视图或从后台运行应用程序...

任何想法,将不胜感激。

4

1 回答 1

0

知道了。如果在屏幕上有键盘时触发 segue,则会发生这种情况。键盘附加到左侧视图控制器上的可编辑项目。因此,当 segue 触发时,新的视图控制器被定位在左视图控制器上,并向上推以考虑键盘 - 由于活动文本项不再活动,键盘已经被解除。

于 2013-03-06T11:56:59.387 回答