UIPopoverController for iPhone通过实现类别

时间:2013-12-16 11:41:35

标签: ios objective-c uipopovercontroller

我知道Popover控制器仅供iPad设备使用,但在下面的问题中,有一条评论用户提到了类别,代码如下, UIPopoverController for iphone not working?

  // UIPopoverController+iPhone.h file
  @interface UIPopoverController (iPhone)
 + (BOOL)_popoversDisabled;
 @end

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

这是对的吗? Apple会批准吗?

我的iPad应用程序已经完成,现在我正在制作它的通用应用程序,所以我没有使用任何自定义popover,而是想添加这个类别,以便它可以解决我的问题并减少开发工作。

2 个答案:

答案 0 :(得分:1)

这是非常黑客的方式,你将把它放在AppStore上冒很大的风险。当然有人可能会在商店中放置一个他们忽略这个版本的版本,但它可以打破任何时刻,Apple可能决定删除他的应用程序。

您是否在iPhone上测试过popovers?你会在iOS7.1中测试吗?它会在iOS7.2或iOS 7.3上完全相同吗?

更好的解决方案是采用弹出窗口的开源实现并将其用于iPhone(或两者)。

答案 1 :(得分:0)

我在iPhone中有popover的实时应用程序。 只需要为popover创建界面

<强> 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

修改

对于iOS 8,您可以使用 的 WYPopoverController.