【问题标题】:UIPrintInteractionController inside popup弹出窗口内的 UIPrintInteractionController
【发布时间】:2016-08-17 09:11:37
【问题描述】:

我必须在弹出窗口中实现UIPrintInteractionController。我已经实现了 -

(UIViewController *)printInteractionControllerParentViewController:(UIPrintInteractionController *)printInteractionController {
    UINavigationController* navigationController = [[UINavigationController alloc] init];
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
    [popover presentPopoverFromRect:address.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    [popover.contentViewController.view setBackgroundColor:[UIColor grayColor]];
    navigationController.preferredContentSize = CGSizeMake(320, 540);
    return navigationController;
}  

但它会崩溃说:

reason: '-[UIPopoverController initWithContentViewController:] called when not running under UIUserInterfaceIdiomPad.'

甚至在 ipad 模拟器中进行测试。该怎么办 ?我必须像 一样实现弹出窗口。

【问题讨论】:

  • 您的问题是关于不同尺寸的屏幕
  • @vaibhav 如果我的目标是 ipad,我该怎么办。
  • 看看我的回答是否有帮助..

标签: ios objective-c uipopovercontroller uiprintinteractioncntrler


【解决方案1】:

您可以使用下面的代码找出不同的设备是 iPad 还是 iPhone ..

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // code for iPad here 
}else{

    // code for iPhone here
}

更新

  • 您可以通过将 uiview 传递给自定义视图来使用以下方法弹出窗口。

    -(void) popOver:(UIView *)view{
    
    view.hidden = NO;
    
    view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);   // view to popup
    [UIView animateWithDuration:0.3
                     animations:^{
                         view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
                 } completion:^(BOOL finished) {
                     [UIView  animateWithDuration:0.1
                                       animations:^{
                                           view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.9,0.9); // custom view
                                       }completion:^(BOOL  finished) {
                                           [UIView animateWithDuration:0.1 animations:^{
                                               view.transform = CGAffineTransformIdentity;   // custom view to pop
                                           }];
                                       }];
                 }];
    
    }
    

这个方法显示了一个像 popover 这样的 uiview,现在可以在上面添加任何 UI 组件。

【讨论】:

  • 我已经看到了这个答案并且我已经实现了这个但它没有帮助。我想知道如何为 Ipad 做到这一点?
  • 上面的代码非常适合对iPad或iPhone进行分类..请更详细地解释您的问题。
  • 在我明白之前,这可能是您问题的答案......看看这个link
  • 但是我用的是ipad模拟器,不应该进去if而不是else。
  • 但是为什么不进入 if 条件,即使在真正的 ipad 上而不是模拟器上?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多