关于iphone:在另一个视图中将NSNumber发送给UILabel

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];

使用NSStringWithFormat

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等等。 并且您需要做一些研究,以便在将浮点转换为字符串时查看所需的字符串格式。

希望这可以帮助