【问题标题】:UISegmentedControl index doesnt update when touched触摸时 UISegmentedControl 索引不更新
【发布时间】:2012-11-05 18:25:10
【问题描述】:

您好,我在更新分段控制器的索引时遇到问题。以下代码来自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。

谁能知道为什么会这样,如果可能的话,告诉我如何解决。

任何帮助将不胜感激。

谢谢你

【问题讨论】:

  • 如果您将此日志与其他人一起记录,NSLog(@"%@", fVC); 的输出是什么?
  • 2012-11-17 09:57:04.967 MyBMI_Buddy2[402:c07] 这是那个输出

标签: objective-c ios xcode model-view-controller uisegmentedcontrol


【解决方案1】:

您没有初始化 FVC viewController 的实例,只是声明它:

变化:

MBBFirstViewController *fVC

收件人:

MBBFirstViewController *fVC = [MBBFirstViewContoller alloc] init];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多