将字符串从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的示例,以便我可以在标签中显示它,我尝试过不同的方法,但我找不到合适的组合来修复错误..
答案 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等等。并且您需要做一些研究,以便在将浮点转换为字符串时查看所需的字符串格式。
希望这有帮助