再次提问。当我使用presentViewController
在我当前的视图控制器之上呈现一个新的视图控制器时,它是全屏的。如何让它呈现特定尺寸?或者我应该使用其他方法。
代码:
- (IBAction)showProfile:(id)sender {
ProfileView *profileTop = [[ProfileView alloc] init];
profileTop.delegate = self;
[self presentViewController:profileTop animated:YES completion:nil];
}
答案 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文件中的视图大小。见下图