8

再次快速提问。当我presentViewController过去在我当前的视图控制器之上展示一个新的视图控制器时,它是全屏的。如何让它呈现特定的尺寸?或者我应该使用其他方法。

代码:

- (IBAction)showProfile:(id)sender {
ProfileView *profileTop = [[ProfileView alloc] init];
profileTop.delegate = self;

[self presentViewController:profileTop animated:YES completion:nil];
}
4

4 回答 4

10

如果您正在开发应用程序,iPad那么您可以使用 viewController 的modalPresentationStyle属性,您需要设置用于呈现 viewController。

该变量有 4 个值。

UIModalPresentationFullScreen = 0,
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext

您可以选择最适合您的套房。

于 2013-05-23T06:22:33.603 回答
7

我建议做更多的研究,特别是在 Apple 的参考资料中。值得注意的是,View Controller Programming Guide ( http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html ) 中有这样的引用:

模态视图的表示样式

对于 iPad 应用程序,您可以使用多种不同的样式呈现内容。在 iPhone 应用程序中,呈现的视图总是覆盖窗口的可见部分,但在 iPad 上运行时,视图控制器使用其 modalPresentationStyle 属性中的值来确定它们在呈现时的外观。此属性的不同选项允许您显示视图控制器,以便它填充全部或仅部分屏幕。

具体来说,在 presentViewController 的 API 参考页面上(http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/ presentViewController:animated:completion :):

在 iPhone 和 iPod touch 上,呈现的视图始终是全屏的。在 iPad 上,演示文稿取决于 modalPresentationStyle 属性中的值。

只有 iPad 似乎支持非全屏模式。

于 2013-05-22T14:05:45.493 回答
4

在 iPad 上,您可以使用:

[viewcontroller setModalPresentationStyle:UIModalPresentationFormSheet];

例子:

LoginDialogViewController * login_dialog = [[LoginDialogViewController alloc] init];
[login_dialog setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:login_dialog animated:true completion:nil];
于 2014-04-03T07:27:58.423 回答
0

您可以使用相同的代码。然后在xib文件中调整视图大小。见下图 尺寸检查员

于 2013-05-23T05:59:09.680 回答