当作为表单表示时,难以将视图控制器置于中心位置

Jac*_*ies 5 iphone objective-c uiviewcontroller ipad ios

我正在尝试呈现一个视图控制器,其表示样式设置为表单.但是,当视图控制器出现时,它位于屏幕右侧,而不是中心.我不确定为什么会这样,或者我该怎么做.所有这些坐标都是正确的!

CGSize size = CGSizeMake(650, 550);

//custom init for ViewController so I can position stuff correctly
ViewController *vc = [[ViewController alloc] initWithSize:size];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];

nav.modalPresentationStyle = UIModalPresentationFormSheet;
nav.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController:nav animated:YES];

nav.view.superview.frame = CGRectMake(0, 0, size.width, size.height);
nav.view.superview.center = self.view.center;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Jsd*_*ers 1

似乎每当我删除最后两行时,我都会得到我认为是您正在寻找的行为。

CGSize size = CGSizeMake(650, 550);

//custom init for ViewController so I can position stuff correctly
ViewController *vc = [[ViewController alloc] initWithSize:size];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];

nav.modalPresentationStyle = UIModalPresentationFormSheet;
nav.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController:nav animated:YES];
Run Code Online (Sandbox Code Playgroud)

我不确定你到底想用这两行做什么,但如果没有它们,视图就会居中。

  • 在 iOS7 Beta 5 上,UIModalTransitionStyleFlipHorizo​​ntal 或 UIModalTransitionStyleCoverVertical 似乎都无法使表单居中。只有 UIModalTransitionStyleCrossDissolve 有效。 (8认同)
  • 当尝试使用任何过渡样式的 UIModalPresentationFormSheet 呈现模态视图控制器并在 viewDidAppear 中调用 [self.firstTextfield comeFirstResponder] 时,我遇到同样的问题... (2认同)