【问题标题】:equivalent [UIPopoverController setContentViewController:(UIViewController *) animated:(BOOL)]; for iOS8等效 [UIPopoverController setContentViewController:(UIViewController *) 动画:(BOOL)];适用于 iOS8
【发布时间】:2014-09-26 00:40:43
【问题描述】:

在 iOS8 中设置 UIPopoverController 大小的正确方法是什么

在 iOS7 中是

[UIPopoverController setContentViewController:(UIViewController *) animated:(BOOL)];

现在不行了

提前致谢


编辑:将我的一段代码和两个结果(iOS7.1 和 iOS8)放在这里

DetalleTarjetaVC *controller     = [self.storyboard instantiateViewControllerWithIdentifier:@"DetalleTarjetaVC"];

            UINavigationController                      *navController;
            navController                               = [[UINavigationController alloc] initWithRootViewController:controller];
            navController.toolbarHidden                 = FALSE;
            navController.navigationBar.translucent     = FALSE;
            navController.toolbar.translucent           = FALSE;
            navController.navigationBar.barTintColor    = UIColorFromRGBWithAlpha(toolbarTintColor, 0.95);
            navController.navigationBar.barStyle        = UIBarStyleBlack;
            navController.toolbar.barTintColor          = UIColorFromRGBWithAlpha(toolbarTintColor, 0.95);
            navController.toolbar.barStyle              = UIBarStyleBlack;



            controller.view.backgroundColor = UIColorFromRGBWithAlpha(0XFFFFFF, 1);

            tarjetasPopover = [[UIPopoverController alloc] initWithContentViewController:navController];


            CGRect rect     = button.frame;
            CGPoint coord   = [button convertPoint:button.frame.origin toView:self.tableView];
            rect.origin.y   = coord.y -20;

            [tarjetasPopover setPopoverContentSize:CGSizeMake(530, 400) animated:YES];
            [tarjetasPopover presentPopoverFromRect:rect
                                             inView:self.view
                           permittedArrowDirections:UIPopoverArrowDirectionLeft
                                           animated:YES];

【问题讨论】:

    标签: size ios8 xcode6 uipopovercontroller


    【解决方案1】:

    有些东西可以帮助你

            int iOSVersion = [[[UIDevice currentDevice]systemVersion] intValue];
    
            if (iOSVersion >= 8) {
                controller.preferredContentSize = CGSizeMake(530, 312);
            }
            else{
                [tarjetasPopover setPopoverContentSize:CGSizeMake(530, 400) animated:YES];
            }
    

    iOS8 的高度降低了 88.0,因为您必须考虑工具栏和导航控制器的宽度(每个 44 像素)以获得相同的大小

    【讨论】:

      【解决方案2】:

      该方法在 iOS8 中没有被替换。你只需要在之前分配一个istance,就像这样:

       UIPopoverController *yourPopoverController = [[UIPopoverController alloc] init];
      

      然后你可以使用:

       [yourPopoverController setContentViewController:yourViewController animated:YES];
      

      或者您可以轻松地在 UIPopoverController Init 上传递 viewController:

      UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:yourViewController];
      

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-29
        • 2012-02-26
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 2013-10-18
        • 2017-06-07
        相关资源
        最近更新 更多