在另一个视图中将NSNumber发送到UILabel

时间:2012-07-11 15:05:47

标签: iphone xcode nsstring uilabel nsnumber

  

可能重复:
  How to convert NSNumber to NSString

将字符串从MainViewController传递给DetailViewController:

MainViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {


    if ([[segue identifier] isEqualToString:@"DetailSegue"]) {

        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        DetailViewController *detailViewController = [segue destinationViewController];

//Name:
detailViewController.detailName = [[sortedObjects objectAtIndex:selectedRowIndex.row] valueForKey:@"Name"];

//Attempt with number:
detailViewController.detailPopularity = [[sortedObjects objectAtIndex:selectedRowIndex.row] valueForKey:@"Popularity"];
    }
}

DetailViewController.h

//Name:
@property (nonatomic, strong) IBOutlet UILabel *nameLabel;
@property (nonatomic, strong) NSString *detailName;

//Attempt with number:
@property (nonatomic, strong) IBOutlet UILabel *popularityLabel;
@property (nonatomic, strong) NSString *detailPopularity;

DetailViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];

//Name:    
nameLabel.text = detailName;

//Attempt with number:
popularityLabel.text = detailPopularity;
}

在此示例中,应用程序崩溃,因为它无法在UILabel中显示NSNumber。我需要看一个关于如何将NSNumber转换为NSString的示例,以便我可以在标签中显示它,我尝试过不同的方法,但我找不到合适的组合来修复错误..

3 个答案:

答案 0 :(得分:2)

除现有答案外,您可以在没有任何其他课程的情况下使用

Label.text = [theNumber stringValue];

答案 1 :(得分:1)

使用NSStringWithFormat

popularityLabel.text = [NSString stringWithFormat:"%@", theNumber];

如果您想要特定格式,可以使用:

popularityLabel.text = [NSString stringWithFormat:"%.2f", [theNumber doubleValue]];

答案 2 :(得分:0)

我没有看到你的NSNumber部分,但这应该有效:

Label.text = [NSString stringWithFormat:@"%f",[YourNSNumber doubleValue]];

您可以将doubleValue更改为您需要的任何内容,可以是intValue等等。并且您需要做一些研究,以便在将浮点转换为字符串时查看所需的字符串格式。

希望这有帮助