没有全屏的PresentViewController

时间:2013-05-22 13:55:28

标签: ios objective-c ipad

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

代码:

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

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

4 个答案:

答案 0 :(得分:8)

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

该变量有4个值。

UIModalPresentationFullScreen = 0,
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext

您可以选择哪一套最适合您。

答案 1 :(得分:6)

我建议做一些研究,特别是在Apple的参考文献中。值得注意的是,View Controller Programming Guide(http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html)中引用了这句话:

  

模态视图的演示样式

     

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

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

  

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

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

答案 2 :(得分:3)

在iPad上你可以使用:

[viewcontroller setModalPresentationStyle:UIModalPresentationFormSheet];

示例:

LoginDialogViewController * login_dialog = [[LoginDialogViewController alloc] init];
[login_dialog setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:login_dialog animated:true completion:nil];

答案 3 :(得分:0)

您可以使用相同的代码。然后调整xib文件中的视图大小。见下图 size inspector