首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPopoverPresentationController总是显示全屏模式弹出

UIPopoverPresentationController总是显示全屏模式弹出
EN

Stack Overflow用户
提问于 2016-03-28 05:07:13
回答 4查看 6.3K关注 0票数 4

我试图将视图控制器显示为按钮下面或窗口中央的UIPopoverPresentationController。但它总是显示为全窗口模式弹出。

代码语言:javascript
复制
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    MySecondViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"Pop"];

    // present the controller
    // on iPad, this will be a Popover
    // on iPhone, this will be an action sheet
    controller.modalPresentationStyle = UINavigationControllerOperationPop;
    [self presentViewController:controller animated:YES completion:nil];
    controller.preferredContentSize = CGSizeMake(280, 230);
    // configure the Popover presentation controller
    UIPopoverPresentationController *popController = [controller popoverPresentationController];
    popController.permittedArrowDirections = UIPopoverArrowDirectionUp;
    popController.delegate = self;

    // in case we don't have a bar button as reference
    popController.sourceView = self.showPop;
    popController.sourceRect = CGRectMake(384, -120, 280, 230);


-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
    return UIModalPresentationNone;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-28 06:27:25

尝试一下它正在工作的代码

代码语言:javascript
复制
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SecondViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"pop"];

controller.modalPresentationStyle = UIModalPresentationPopover;
controller.preferredContentSize = CGSizeMake(280, 230);
// configure the Popover presentation controller

controller.popoverPresentationController.delegate = self;
controller.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;


// in case we don't have a bar button as reference
controller.popoverPresentationController.sourceView = self.view;
controller.popoverPresentationController.sourceRect = CGRectMake(384, -120, 280, 230);
//    controller.presentationController.delegate = self;
[self presentViewController:controller animated:YES completion:nil];
票数 4
EN

Stack Overflow用户

发布于 2016-03-28 07:10:26

我为同样的问题发表了另一个问题,我已经解决了我的问题。以下是问题的链接:UIPopoverPresentationController is showing full screen modal on iPhone

在ViewController.h中,首先创建一个UIPopoverPresenatationController属性。

代码语言:javascript
复制
@property(nonatomic,retain)UIPopoverPresentationController *dateTimePopover8;

然后显示PopOverPresentationcontroller

代码语言:javascript
复制
    UINavigationController *destNav = [[UINavigationController alloc] initWithRootViewController:dateVC];
/*Here dateVC is controller you want to show in popover*/
                dateVC.preferredContentSize = CGSizeMake(280,200);
                destNav.modalPresentationStyle = UIModalPresentationPopover;
                _dateTimePopover8 = destNav.popoverPresentationController;
                _dateTimePopover8.delegate = self;
                _dateTimePopover8.sourceView = self.view;
                _dateTimePopover8.sourceRect = [sender frame];
                destNav.modalPresentationStyle = UIModalPresentationPopover;
                destNav.navigationBarHidden = YES;
                [self presentViewController:destNav animated:YES completion:nil];

您一定已经注意到,我们提供的不是popOver.So,而是视图控制器,我们必须以新的方式隐藏这一点,当我们单击屏幕时,also.It会自动隐藏。

代码语言:javascript
复制
-(void)hideIOS8PopOver
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

我们必须在实现文件中实现UIPopoverPresenatationController的委托,在实现文件中实现下面的委托方法。

代码语言:javascript
复制
- (UIModalPresentationStyle) adaptivePresentationStyleForPresentationController: (UIPresentationController * ) controller {
    return UIModalPresentationNone;
}
票数 2
EN

Stack Overflow用户

发布于 2016-09-29 11:07:02

在童话板,这是非常容易的。只需控制将触发操作(例如UIBarButton或普通按钮)的控件拖动到情节提要视图控制器(如果导航控制器的根视图,则拖动到导航控制器)。选择segue并将属性检查器中的类型更改为“presentation”,Present: Form sheet (如果您希望它在中间显示),选择您想要的转换类型(默认值很酷)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36256307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档