iOS - presentViewController就像图像一样(在Messages中打开iMessages应用程序商店)

时间:2016-10-21 06:39:16

标签: ios objective-c iphone xcode uinavigationcontroller

Open iMessages app store in Messages Screenshot

我希望像上面的图片一样呈现UINavigationController,我使用

nvc.modalPresentationStyle =  UIModalPresentationFormSheet;

但我不能改变控制器的大小。

这就是我的做法:

UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor grayColor];

UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:vc];
nvc.modalPresentationStyle = UIModalPresentationFormSheet;

nvc.view.frame = CGRectInset(self.view.bounds, 20, 20);
[self presentViewController:nvc animated:YES completion:nil];

但是现在的viewController仍然全屏。

1 个答案:

答案 0 :(得分:0)

您可以使用preferredContentSize,如下所示:

nvc.modalPresentationStyle =  UIModalPresentationFormSheet;

nvc.preferredContentSize = CGSizeMake(width, height);

喜欢,

nvc.preferredContentSize = CGSizeMake(300, 600);

<强> OR

在呈现的viewController&#39; viewDidLoad方法中写下代码:

self.preferredContentSize = CGSizeMake(width, height);

<强> 编辑:

  1. 选择您的viewController或xib并将size属性设置为Freeform

  2. 在属性检查器中的内容大小中启用用户首选显式大小。

  3. img1

    有关详细信息,请参阅此处的答案: