从另一种方法调用IBAction

时间:2016-11-28 23:34:24

标签: ios objective-c

我是Objective-C,Xcode和所有好东西的新手。我是自学。

我正在尝试从其他方法调用IBAction

- (IBAction)strAdj:(UIStepper *)strStepper
{
    // Converts stepper to integer
    NSUInteger strvalue = strStepper.value;

    // Changes the the text to the value of the stepper
    strStat.text = [NSString stringWithFormat:@"%2d", (unsigned)strvalue];

    _strMod.text = [NSString stringWithFormat:@"%2d", (unsigned)stepperAdj(strvalue)];
    // Based on the value it change the strMod to a specific value
}

我只发布下一段代码的一部分。这是一个简单的switch语句。我基本上想在下面的Void中调用上面的IBAction。

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    switch (row) {
        case 0:
            break;
// Core races never change
        // defines dwarf stats
        case 1:
            // sets all the increases
            tempCon = 2;
            tempWis = 2;
            tempChr = -2;

            // resets all other stats
            tempStr = 0;
            tempDex = 0;
            tempInt = 0;

            // I want to call the IBAction here... 

            break;

IBAction最终需要发生15次。更改选择器时会出现上述switch语句。每当步进器发生时IBAction发生的位置。

我希望我离我想做的事情不太远。在过去的几天里,我一直只是在处理这个问题而且我找不到我要找的东西,或者如果我这样做了,那我就不知道该怎么做了。

2 个答案:

答案 0 :(得分:0)

看起来你有一个玩家选择比赛的下拉菜单,每个属性(str,con,wis等)都有一个步进器来向上或向下碰撞各个值。

我不太了解推测,但我怀疑整体方法更好。也就是说,我认为对你要做的事情的一个强力解决方案是确保每个步进器都有一个参考插座:stepperWis,stepperCon,stepperInt等。然后在你的开关中你可以这样做(对于每个属性):

stepperWis.value = (whatever value you want);
[self strAdj:self.stepperWis];

答案 1 :(得分:0)

您可以编程方式调用UIButton TouchUpInside事件,如:

[YourButtonObject sendActionsForControlEvents:UIControlEventTouchUpInside];