2

こんにちは、セグメント化されたコントローラーのインデックスの更新に問題があります。次のコードは、calcualateクラスからのものです。

 + (NSString *) calculate:(NSString *)height:(NSString *)weight{
  double bmiVal = 0;
   MBBFirstViewController *fVC;
        NSLog(@"%d", [[fVC heightSegment]selectedSegmentIndex]);
        NSLog(@"%d", [[fVC weightSegment]selectedSegmentIndex]);
        if ([[fVC heightSegment]selectedSegmentIndex] == 0 && [[fVC weightSegment]selectedSegmentIndex] == 0) {
             value = 10.5555;
        }else if ([[fVC heightSegment] selectedSegmentIndex] == 0 && [[fVC weightSegment]selectedSegmentIndex] == 1) {
             value = 11.5555; 
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 0 && [[fVC weightSegment]selectedSegmentIndex] == 2) {
             value = 12.5555;
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 1 && [[fVC weightSegment]selectedSegmentIndex] == 0) {
             value = 13.5555;
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 1 && [[fVC weightSegment]selectedSegmentIndex] == 1) {
             value = 14.5555;
        }else if ([[fVC heightSegment] selectedSegmentIndex] == 1 && [[fVC weightSegment]selectedSegmentIndex] == 2) {
             value = 15.55555;
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 2 && [[fVC weightSegment]selectedSegmentIndex] == 0) {
             value = 16.55555;
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 2 && [[fVC weightSegment]selectedSegmentIndex] == 1) {
             value = 17.55555;
        }else if ([[fVC heightSegment]selectedSegmentIndex] == 2 && [[fVC weightSegment]selectedSegmentIndex] == 2) {
             value = 18.5555;
    }
}
 NSString *bmiV = [NSString stringWithFormat:@"%.2f",bmiVal];
return bmiV;
}

このコードはviewcontroller.mクラスからのものです

- (IBAction)calculateTotal:(id)sender {
    NSString *h = [heightField text];
    NSString *w = [weightField text];
    yourBmiField.text = [calculate yourCalculation:h:w];
}

そしてこれはviewcontroller.hからのものです

 @interface MBBFirstViewController : UIViewController <UITextFieldDelegate>{
     UITextField *heightField;
     UISegmentedControl *heightSegment;
     UITextField *weightField;
     UISegmentedControl *weightSegment;
 }
 @property (strong, nonatomic) IBOutlet UITextField *heightField;
 @property (strong, nonatomic) IBOutlet UISegmentedControl *heightSegment;
 @property (strong, nonatomic) IBOutlet UITextField *weightField;
 @property (strong, nonatomic) IBOutlet UISegmentedControl *weightSegment;
 - (IBAction)calculateTotal:(id)sender;
@end

これを短くするために、主な計算は省略しました。これを実行すると、選択したセグメントは常に0のままになります。

誰かがこれが起こっている理由を理解でき、可能であれば私が修正できる方法を教えてください。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

1

FVC viewController のインスタンスを初期化するのではなく、宣言するだけです。

変化する:

MBBFirstViewController *fVC

に:

MBBFirstViewController *fVC = [MBBFirstViewContoller alloc] init];
于 2012-11-17T02:22:01.167 に答える