我试图从分段控件接收用户选择,然后将其保存到NSUserDefaults,即,如果第一个段被选中,那么它将int“1”保存到NSUserDefaults中,但如果第二个段被选中,那么它将int“2”保存到NSUserDefaults中。如何接收来自分段控件的输入
回答
最简单的方法是使用绑定。将控件的选定索引绑定到共享用户默认值控制器,并将模型键路径设置为您要使用的首选项键。
编辑即可添加:我看到您没有指定Mac或iOS。如果是Mac,绑定无疑是最简单的方法,而绑定在iOS上不可用。
分段控制值从0开始的事实并不重要。您可以绑定选定的标签而不是选定的索引,然后使用所需的任何标签值。
好的。所以我测试了一切,我发现的是我的问题其实就是这样。我有2个视图,主视图和flipSideView。一个视图只需要从nsuserdocuments读取,而另一个需要读取和写入,但在我的代码中,我分配了两个相同名称的nsuser文档; 1为每个视图,这是不正确的。那么如何在一个中分配它并在另一个中连接呢? – 2011-06-01 01:00:32
这听起来像你现在有一个问题,与你原来的问题没有任何关系,所以我认为你应该发布一个新的问题。 – JWWalker 2011-06-01 05:24:30
不要听上面的人。首先你应该知道的是,UISegmentedControl从0开始,所以第一个是0,第二个是1,第三个是2,等等。 如果你想从0开始,只需要在你的整数获得价值。 (看下面) 要更改它的值时,挂钩一个IBAction方法并将它连接到你的UISegmentedControl。使用valueChanged执行操作,而不是使用touchUpInside。然后在你的IBAction方法中,假设它被称为“theMethod”,使用这个代码。
-(IBAction)theMethod {
int theInteger;
theInteger = [segmentedController selectedSegmentIndex];//segmentedController is the name of your UISegmentedController.
//theInteger ++; //adds 1 to the integer so as to start the numbering at 1 instead of 0 like I have explained up above.
然后,你可以去保存你的NSUserDefaults整数。
注意,如果你想保存它,你将需要把你的整数转换成一个NSNumber,因为你不能保存整数或变量,你只能保存对象。 为此,我会使用以下方法:
NSNumber *myNumber = [NSNumber numberWithInt:theInteger];
- (IBAction)totalAction:(id)sender {
toggleNav = sender; // this is your segmented control
if ([toggleNav selectedSegmentIndex] == 0) {
NSlog(@"i am here");
} else if ([toggleNav selectedSegmentIndex] == 1) {
NSlog(@"i am here");
}
}
如果您正在使用iOS的工作,你可以按照添加到segmentedcontrol
[yourSegmentedControl addTarget:self action:@selector(valueChanged:) forControlEvents: UIControlEventValueChanged];
凡在你的valueChanged方法,更新UserDefaults。 请注意valueChanged后的冒号。如果valueChanged没有参数,则不需要它。
- 1. 如何接收来自OnGestureListener的事件
- 2. ASP.NET - 收集来自PDF表单字段的用户输入
- 3. 如何接收来自codeigniter控制器的ajax响应?
- 4. GTK +应用程序:接收来自工作线程的输入
- 5. 不接收来自http输入流的数据
- 6. 创建JTextField接收来自用户的输入
- 7. EditField不接收来自“0”键的输入
- 8. 如何接收来自PayPal的通知
- 9. 如何接收来自该 PhoneGap的
- 10. 如何接收来自/ usr/bin/time -v的输出?
- 11. 如何在Rasberry Pi终端中接收来自用户的输入
- 12. C#控制台接收管道输入
- 13. 击风格来接收输入从管
- 14. 保存来自输入字段的值
- 15. 键盘输入:如何分离从用户接收的键码
- 16. 如何使控制器中的动作接收来自未知数量输入的更多数据
- 17. 接收来自IOS
- 18. Javascript输入来自iFrame中文本字段链接的数据
- 19. 无法接收来自gmail的邮件
- 20. 输入[时间]不接受来自控制器的值
- 21. C++控制台窗口仅接受来自USB的输入
- 22. TCustomControl如何接收输入焦点?
- 23. 如何显示来自文本字段的用户输入
- 24. 分段控制输入Android应用
- 25. 如何整理来自控制台的所有输入
- 26. 如何通过API跟踪来自Google AdMob的收入和收益分享
- 27. 接受来自Activity的用户输入
- 28. 如何接收来自私人工作组队列的邮件
- 29. 接收控制台输出
- 30. 如何在程序运行时接受来自stdin的输入
它的iOS所以绑定的替代方法是什么? – 2011-06-01 03:21:18