支持iOS 9/10的两个版本今日小部件

4
我想知道如何支持iOS 9和iOS 10的两个版本Today Widget,并且只在相应的操作系统上显示。目前我已经尝试了使用两个target,一个针对iOS 9,另一个针对iOS 10,但是在iOS 10模拟器中,两个Today Widget都会出现。请问有没有其他方法可以实现这个功能,或者我需要在代码中检查当前的操作系统版本来进行处理?

1
根据你的iOS版本,你不应该能够通过[[NCWidgetController widgetController] setHasContent:NO forWidgetWithBundleIdentifier:YourTodayWidgetBundleIdentifier];来完成这个操作吗? - Matt
@Matt 感谢您的评论,它有点起作用。实际上,小部件不会显示出来,但它出现在小部件列表中。您可以提供更详细的答案,我会接受它。 - Zico
不客气。我没有更多要补充的,所以我只是用同样的话回答了。我之所以发表评论而不是回答是因为我自己还没有测试过。 - Matt
能否根据iOS版本动态加载不同的故事板?同时显示两个故事板并不是一个好的解决方案,特别是当您知道iOS 9版本在iOS 10中看起来不太好时。 - RealCasually
1个回答

1

虽然您无法阻止 iOS 9 小部件目标出现在小部件选项列表中,但是您可以在其上设置 hasContent false,这样它就不会显示在今天视图中。

[[NCWidgetController widgetController] setHasContent:NO forWidgetWithBundleIdentifier:YourTodayWidgetBundleIdentifier];

这不是一个完美的解决方案,但它可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接