【问题标题】:Populating a UILabel from a NSString从 NSString 填充 UILabel
【发布时间】:2016-09-01 18:25:05
【问题描述】:

哇,奇怪!!,我正在将值 NSString 从我的准备 segue 传递给另一个类。好的,字符串有一个值,当传递给我的 -(void) 时,该值仍然存在。我连接了一个 IBOutlet UILabel,但下面的代码没有填充 UILabel。我从 void 方法记录这个。

2016-09-01 14:21:56.839 ApiAIDemo[1263:586780] msgString 里面有这个 { Speech = “月球是地球上唯一的永久性天然卫星。它是太阳系中第五大天然卫星,相对于其运行的行星的大小而言,它是行星卫星中最大的卫星。它是这些卫星中密度第二大的卫星其密度是已知的。”; }

这是我的财产。

@property (weak, nonatomic) IBOutlet UILabel *myMsgLabel;

-(void)passedMsgFromVoicButtonVC:(NSString *)msgString{

    **NSLog(@"The msgString has this in it %@",msgString);**

    self.myMsgLabel.text = [NSString stringWithFormat:@"%@",msgString];

    NSLog(@"BELOW the msgLabel has this in it %@",_myMsgLabel.text);

}

【问题讨论】:

  • 你在哪里调用passedMsg方法?
  • 我从下面这样的不同类中调用它,仅供参考,NSLog 语句也证明了它的价值。 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"在 prepareForSegue 中 _msgLabel 有这个 %@",_myResult); Msgview *msg = segue.destinationViewController; [消息传递MsgFromVoicButtonVC:_myResult]; }
  • 如果你能看到 _myMSGlabel.txt 然后尝试打印标签框。
  • NSStringFromCGRect(_myMsgLabel.frame)
  • 不禁注意到您从未在 SO 上标记过正确答案。帮助后来阅读帖子的其他人并鼓励其他人帮助您是一个好习惯。

标签: objective-c xcode nsstring uilabel


【解决方案1】:

在控制器中创建一个非出口属性来保存从 segue 传入的字符串。然后更新viewDidLoad中的插座。

问题是在 iOS 正确设置控制器的 UI 之前调用 segue。

【讨论】:

  • @JohnZ - 请使用投票数正下方的复选标记。