弹出窗口内的 UIPrintInteractionController
Posted
技术标签:
【中文标题】弹出窗口内的 UIPrintInteractionController【英文标题】:UIPrintInteractionController inside popup 【发布时间】: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,我该怎么办。 看看我的回答是否有帮助.. 【参考方案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 上而不是模拟器上?以上是关于弹出窗口内的 UIPrintInteractionController的主要内容,如果未能解决你的问题,请参考以下文章