如何接收来自分段控件的输入
我试图从分段控件接收用户选择,然后将其保存到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没有参数,则不需要它。
它的iOS所以绑定的替代方法是什么? – 2011-06-01 03:21:18