0

我必须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 模拟器中进行测试。该怎么办 ?我必须像这个.

4

1 回答 1

0

您可以使用以下代码找出不同的设备是 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 组件。

于 2016-08-17T09:44:58.297 回答