UIPopoverController for iPhone 通过实现类别

Posted

技术标签:

【中文标题】UIPopoverController for iPhone 通过实现类别【英文标题】:UIPopoverController for iPhone by implementing category 【发布时间】:2013-12-16 11:41:34 【问题描述】:

我知道 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 

这是正确的方法吗? 苹果会批准吗?,

我的 iPad 应用程序已经完成,现在我将其制作为通用应用程序,因此我不想使用任何自定义弹出框,而是想添加此类别,以便解决我的问题并减少开发工作。

【问题讨论】:

这是一种私有方法,因为引用帖子的 OP 已经提到了这一点,但是在您的特定情况下,您可能需要查看此帖子:“Symbol not found” error for UIPopoverController in an iPhone/iPad Universal App 【参考方案1】:

这是一种非常老套的方式,将它放到 AppStore 上会冒很大的风险。当然有人可能会在他们忽略了这一点的商店中放置了一个版本,但它可能随时中断,Apple 可能会决定删除他的应用程序。

您是否在 iPhone 上测试过弹出框?你会在ios7.1中测试吗?它会在 iOS7.2 或 iOS 7.3 上完全一样吗?

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

【讨论】:

【参考方案2】:

我在 iPhone 中有带有弹出框的实时应用程序。 只是你必须为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.

【讨论】:

帮了大忙了,能发一下申请链接吗? academic-diary 在备忘录部分有弹出框。 Apple 似乎已为 iOS8 禁用此功能。我有两个依赖它的应用程序,现在必须找到另一个解决方案。 @Virussmca:我在 iOS 8 上遇到了和 Jason 一样的问题 @Virussmca 感谢它在 iOS7 中运行良好,但在 iOS8 中无法正常工作……iOS8 有什么解决方法吗?

以上是关于UIPopoverController for iPhone 通过实现类别的主要内容,如果未能解决你的问题,请参考以下文章

UIPopoverController 解雇

定制的 UIPopoverController?

当 UIPopoverController 在屏幕上时,无法与带有 UIPopoverController 的 UISearchBar 进行交互

UIPopoverController 没有箭头?

UIPopoverController:关闭后更新视图

自动旋转时出现 UIPopOverController 问题