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 的 UISearchBar 进行交互