我有一个非常简单的选项卡式应用程序,其中包含两个选项卡“当前信息”和“设置”。在设置选项卡中,您可以配置轮询服务以获取信息的频率。配置轮询后,应用程序将轮询服务并更新“当前信息”选项卡中的信息。
可能是简单的问题。我有一个用于设置面板的TableViewController。
#import <UIKit/UIKit.h>
@interface SettingsViewController : UITableViewController <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *refreshRateTextField;
@property (copy, nonatomic) NSNumber *refreshRate;
@end
将refreshRate传递给其他ViewController的推荐方法是什么?这不重要,但另一个ViewController也是一个TableViewController。因为当前信息面板需要更新它轮询的时间间隔,如果设置改变了,我可能想要向CurrentInfoController发送一个事件,以便它可以更新它的间隔。
我对iOS很新(这是我想写的一个简单的启动应用程序)。因为这样一个高级别的答案或指向我这方面的苹果文档会一路走来,只需要了解如何开始。
还忘了提到我正在使用故事板,很多MVC示例都使用nib文件。
感谢。
答案 0 :(得分:0)
与其他视图控制器通信时,您可以使用NSNotifications
,但在这种情况下,NSUserDefaults
可以很好地完成任务。
答案 1 :(得分:-1)
我认为,根据您的具体情况,将refreshRate
存储在NSUserDefaults
中是可行的方法。然后,您可以从应用内的任何位置检索它。
将NSNumber
(对象)保存到NSUserDefaults
:
[[NSUserDefaults standardUserDefaults] setObject:refreshRate forKey:@"savedRefreshRate"];
从NSNumber
检索NSUserDefaults
:
NSNumber refreshRate = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedRefreshRate"];
该代码应该适用于您的情况,但我仍然会发布一个指向类引用的链接。你应该习惯于阅读它们,因为它是学习iOS开发时的宝贵资源。
有关详细信息,请参阅NSUserDefaults class reference。