听起来您可能想从一些编写 iPhone 应用程序的教程开始,因为上面的代码看起来不错(尽管我没有专门尝试过)。如果您不了解如何执行我在下面描述的某些事情(或者某些术语不熟悉),我建议您买一本好书或查看一些教程:
书籍:iOS 6 SDK 开发(亚马逊)
教程:Ray Wenderlich 在他的网站上有很多很好的教程
苹果文档非常好
仅仅为您编写代码是没有意义的,因为您可能想学习如何编程,如果有人为您编写代码,您将学不到太多东西。
这里有一些关于如何考虑这个问题的建议,尽管你想要的行为从你所说的并不完全明显。
如果我理解您,您希望在显示主视图时发生两种不同的操作。
首先,为什么不让它在字段中设置文本字符串以匹配充电/未充电状态?
因此,您需要在 Xcode 的主视图 .xib 文件中添加一个 UILabel,并在视图控制器中为其添加一个插座,以便您可以在运行时设置它的文本。
然后你会想要调用上面的第一行开始监控(参数是:YES),一旦视图消失,再次调用 NO 停止监控。如果您查看位于UIViewController
顶部附近的 developer.apple.com 的文档,您将看到 UIViewController 实现的方法列表。在这种情况下,您可能想要覆盖(创建您自己的版本)viewWillAppear
并将带有 YES 和 NOviewWillDisappear
的setBatteryMonitoringEnabled
调用分别放入这两个方法中。
这样就可以启用/禁用电池状态监控。现在您需要测试状态并采取行动(这是batteryState
上面代码中的调用)。
从您的描述中不明显的关于设计的一个问题是,如果您想在视图出现时执行此操作一次,或者您是否希望它持续监视状态。
如果你想做一次,你可以把上面的调用放在viewDidAppear
,比如说,然后使用 UILabel 的插座根据结果将标签中的消息设置为“正在充电”或“不充电”batteryState
方法。
如果您想要监视充电状态变化的东西,那么您需要订阅通知并将您的代码更改为该通知的处理程序中的 UILabel(或您最终为响应更改所做的任何事情)。
您可以通过阅读 developer.apple.com 上的UIDevice文档或 Xcode 的 Organizer 窗口的 Documentation 部分了解这一点。如果您阅读该UIDevice
方法的文档,batteryMonitoringEnabled
您会看到“另请参阅”部分包含两个通知条目,您可以订阅以了解 Level 或 State 何时更改: UIDeviceBatteryLevelDidChangeNotification
和UIDeviceBatteryStateDidChangeNotification
. 要了解如何订阅通知,您需要查看NSNotificationCenter
文档。
然后,一旦您开始工作,您就可以添加更高级的警报(小心重复发出警报!)和声音(尽管在电池不充电时播放声音会使用电池,这有点值得怀疑......只是确保不要也许反复做)。
祝你好运!