こんにちは、セグメント化されたコントローラーのインデックスの更新に問題があります。次のコードは、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のままになります。
誰かがこれが起こっている理由を理解でき、可能であれば私が修正できる方法を教えてください。
どんな助けでも大歓迎です。
ありがとう