数字未使用十进制样式进行格式设置

时间:2013-11-22 17:31:41

标签: ios objective-c nsnumberformatter

所以我有一个应用程序应该格式化SecondViewController中的值字符串以显示在firstViewController选项卡上。

当用户输入数字时,它假设使用逗号每3位数对其进行格式化。但不知怎的,我似乎无法得到如何将它显示在firstViewController上。这是我的代码:

在secondViewController.m

    -(IBAction) button:(id)sender{

       NSString *string1 = self.addDigitField.text;

       /* format the entered digits */
       NSNumberFormatter *format =     [NSNumberFormatter new];
       [format setNumberStyle: NSNumberFormatterDecimalStyle];
       NSNumber *n = [format numberFromString: addDigitField];

       /* display the string1 value to the firstViewController Label*/

       self.string1 = [self. addDigitField text]
       FirstViewcontroller *first = self.tabBarController.viewControllers[0];
       first.fvcString = self.string1;
       }

现在firstViewController.m

       /* display the value into firstViewController label *
     -(void) viewDidAppear:(BOOL) animated {
      If (self.svcString != nil)
          self.displayValue.text = self.svcString;
        }

所以我的问题是,在这段代码中,我把消息方法格式化了 号码?我想添加的代码如下:

      [format stringFromNumber: n];

我通常在单个视图应用上使用这种方式:

         self.label.text = [format stringFromNumber: n];

它格式化它。但在我的情况下,将字符串格式化为firstViewcontroller 从secondViewcontroller是我迷路的地方,任何建议我要去哪里 错了??

2 个答案:

答案 0 :(得分:0)

在第二个视图控制器中,替换

first.svcString = self.string1;

first.svcString = [format stringFromNumber:n];

答案 1 :(得分:0)

问题出在下面这一行: -

  self.string1 = [self. addDigitField text];

在此处设置文本值,即前一个值。您需要使用数字格式化程序设置已转换的NSNumber值。试试这个

NSNumber *n = [format numberFromString: 
addDigitField];
self.string1 = [format stringFromNumber:n];
FirstViewcontroller *first =   
self.tabBarController.viewControllers[0];
   first.fvcString = self.string1;

现在在您的第一个视图控制器中,只需替换以下行

   self.displayValue.text = self.fvcString;