我已经相当广泛地搜索了这个没有运气,我很确定它是微不足道的。
基本上,一个水晶球型应用程序。我有:
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分钟才能解释如何去做。
答案 0 :(得分:1)
一个简单(但不是最好)的解决方案是在界面构建器中为3个按钮提供标签0,1,2。然后将predictionArray
设置为:
@[ @[ @"button 0 123", @"button 0 456" ],
@[ @"button 1 123", @"button 1 456" ],
@[ @"button 2 123", @"button 2 456" ]]
然后在buttonPressed
方法中,您可以根据按钮标记选择子阵列:
- (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];
}
}
答案 1 :(得分:0)
如果你真的想做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];
}