2016-11-28 43 views
1

调用一个IBAction为我是新来的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

我希望我不会离我想做的事情太远。在过去的几天里,我只是一直在做这件事,而且我一直没有找到我要找的东西,或者如果我做了,我不知道该怎么做。

+0

为什么你需要调用从选择器的委托方法步进行动? – rmaddy

回答

0

它看起来像你有一个下拉菜单选择一个种族和每个属性(str,con,wis等)都有一个步进器来上下打击各自的值。

我不知道有足够的推测,但我怀疑总体上有更好的方法。这就是说,我认为一个蛮力解决方案,你正在试图做的是要确保每个步进的有参考插座:stepperWis,stepperCon,stepperInt等,然后在你的开关,你可以做一些像这样(每属性):

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

是的,你有这个漂亮的地方。这是该应用程序的基本概念。虽然我确信有更简单的方法来做到这一点,但现在我仍在学习并试图弄清楚所有的事情。首先,我只想获得一份工作副本。然后再回头细化一下。现在的问题是当我调整选取器时,它没有更新标签(即步进器发生变化),但是当我更改步进器时,它会根据步进器值进行更新。我希望这是有道理的。 – Micheal

+0

我没有看到的一件事是,标签如何知道哪个步进器正在更新?正如所写的,它看起来像是哪个步进器被踢,同一个标签正在更新。 – ghostatron

+0

每个属性都有一个标签。所以目前有6个步进器。每个属性一个。有12个标签。统计得分为6分,统计修正符为6分。 stat修饰符基于stat分数的值。有一个IBAction可以完成同样的事情,除了它对每个属性都有效。 – Micheal

0

可以调用的UIButton TouchUpInside事件编程,如:

[YourButtonObject sendActionsForControlEvents:UIControlEventTouchUpInside]。