UIPopoverController for iPhone通过实施类别

我知道,Popover控制器是专门用于iPad设备,但在下面的问题有一个评论,其中用户提到有关类别,代码如下, UIPopoverController iphone不工作?

// UIPopoverController+iPhone.h file @interface UIPopoverController (iPhone) + (BOOL)_popoversDisabled; @end // UIPopoverController+iPhone.m file @implementation UIPopoverController (iPhone) + (BOOL)_popoversDisabled { return NO; } @end 

这是正确的吗? 苹果会批准这个吗?

我的iPad应用程序已经完成了,现在我正在将它变成通用应用程序,所以我不想使用任何自定义popup窗口来添加此类别,以便解决问题并减less开发工作量。

这是非常冒险的方式,你将把一个很大的风险,把它放在AppStore上。 当然有人可能会在商店里放置一个版本,他们忽略了这一点,但任何时候它都可能会崩溃,苹果可能会决定删除他的应用程序。

你有没有testingiPhone上的popup? 你会在iOS7.1中testing吗? 它会在iOS7.2或iOS 7.3上完全相同吗?

一个更好的解决scheme是采取一个开源的popovers实现,并使用iPhone(或两者)。

我有与iPhone中的popover现场应用程序。 只需要为popover创build界面

NSObject的+ UIPopover_Iphone.h

 #import <Foundation/Foundation.h> @interface UIPopoverController (overrides) +(BOOL)_popoversDisabled; @end 

NSObject的+ UIPopover_Iphone.m

 #import "NSObject+UIPopover_Iphone.h" @implementation UIPopoverController (overrides) +(BOOL)_popoversDisabled { return NO; } @end 

现在只需在您的Viewcontroller.h中导入NSObject+UIPopover_Iphone.h UIPopover_Iphone.h

编辑

对于iOS 8,您可以使用WYPopoverController。