Send NSNumber to UILabel in another view
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to convert NSNumber to NSString
Segue将字符串从MainViewController传递给DetailViewController:
MainViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | - (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
1 2 3 4 5 6 7 | //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
1 2 3 4 5 6 7 8 9 10 | - (void)viewDidLoad { [super viewDidLoad]; //Name: nameLabel.text = detailName; //Attempt with number: popularityLabel.text = detailPopularity; } |
在此示例中,应用程序崩溃,因为它无法在UILabel中显示NSNumber。 我需要看一个关于如何将NSNumber转换为NSString的示例,以便我可以在标签中显示它,我尝试过不同的方法,但我找不到正确的组合来修复错误..
除了现有答案,您可以在没有任何其他课程的情况下使用
1 | Label.text = [theNumber stringValue]; |
使用
1 | popularityLabel.text = [NSString stringWithFormat:"%@", theNumber]; |
如果您想要特定格式,可以使用:
1 | popularityLabel.text = [NSString stringWithFormat:"%.2f", [theNumber doubleValue]]; |
我没有看到你的NSNumber部分,但这应该有效:
1 | Label.text = [NSString stringWithFormat:@"%f",[YourNSNumber doubleValue]]; |
您可以将doubleValue更改为您需要的任何值,可以是intValue等等。 并且您需要做一些研究,以便在将浮点转换为字符串时查看所需的字符串格式。
希望这可以帮助