Objective c 使用按钮更改NSArray
我已经搜索了相当广泛的这个没有运气,我敢肯定它微不足道 本质上,一个水晶球类型的应用程序。我有:Objective c 使用按钮更改NSArray,objective-c,nsarray,Objective C,Nsarray,我已经搜索了相当广泛的这个没有运气,我敢肯定它微不足道 本质上,一个水晶球类型的应用程序。我有: self.predictionArray = [[NSArray alloc] initWithObjects: @"Example 1", @"example 10000", nil]; 还有一个“magic8”按钮,当我点击它时,它会选择: - (IBAction)buttonPressed
self.predictionArray = [[NSArray alloc] initWithObjects:
@"Example 1",
@"example 10000", nil];
还有一个“magic8”按钮,当我点击它时,它会选择:
- (IBAction)buttonPressed:(UIButton *)sender {
NSUInteger index = arc4random_uniform(self.predictionArray.count);
self.predictionLabel.text = [self.predictionArray objectAtIndex:index];}
这一切都很完美,网上有很多关于它的东西
我想做什么:
有3个这样的数组和3个按钮。该按钮只需选择相应的NSArray,然后按“magic8”按钮
看起来应该很简单,我理解当前代码中发生的事情,但我一辈子都不知道该怎么做。我肯定没有经验
非常感谢任何能提供建议的人。我真的不想浪费任何人的时间,我在搜索时运气不好,我想可能需要一个知识渊博的人~1分钟来解释怎么做。如果你真的想做3个按钮的事情:
- (IBAction) buttonAction:(UIButton *) b
{
switch(b.tag)
{
case 1:
{
self.predictionArray = nil;
self.predictionArray = [[NSArray alloc] initWithObjects:
@"Example 1",
@"example 10000", nil];
}
break;
case 2:
{
self.predictionArray = nil;
self.predictionArray = [[NSArray alloc] initWithObjects:
@"Example 2",
@"example 20000", nil];
}
break;
case 3:
{
self.predictionArray = nil;
self.predictionArray = [[NSArray alloc] initWithObjects:
@"Example 3",
@"example 30000", nil];
}
break;
default:
break;
}
- (IBAction)buttonPressed:(UIButton *)sender {
NSUInteger index = arc4random_uniform(self.predictionArray.count);
self.predictionLabel.text = [self.predictionArray objectAtIndex:index];
}
一个简单(但不是最好的)解决方案是在interface builder中为您的3个按钮提供标记0、1、2。然后将您的predictionArray
设置为:
@[ @[ @"button 0 123", @"button 0 456" ],
@[ @"button 1 123", @"button 1 456" ],
@[ @"button 2 123", @"button 2 456" ]]
然后在按钮按下的方法中,根据按钮标签选择子阵列:
- (IBAction)buttonPressed:(UIButton *)sender {
if (sender.tag >= 0 && sender.tag < self.predictionArray.count) {
NSArray *predictionArray = self.predictionArray[sender.tag];
NSUInteger index = arc4random_uniform(predictionArray.count);
self.predictionLabel.text = [predictionArray objectAtIndex:index];
}
}
-(iAction)按钮按下:(UIButton*)发送方{
if(sender.tag>=0&&sender.tag
Ahh,然后当我单击“说”按钮2时,它将加载其版本的“predictionArray”?是的,就是这样,您只需切换内容即可。您还可以使用1个方法,所有3个按钮都可以调用它,您可以设置按钮1、2、3的标记,您只需切换标记并更改方法中数组的内容。谢谢-这非常有效。我认为这不是一个非常干净/好的方法,但它对我来说非常有效。我认为我的答案更简单、更干净。你不必一次又一次地重新创建数组。这对你有好处,也许他不想创建数组数组,即使这确实容易得多。简单但足够了。为Willl澄清:所有三个按钮的操作都将连接到一个按钮按下:
处理程序。我建议您在尝试编写应用程序之前,花一点时间学习编程的基础知识(通过一本真书或一门课堂课程)。