【发布时间】:2013-12-08 15:27:53
【问题描述】:
我试图将数据从 ViewController2 中的文本字段传递到 ViewController 中的标签。它似乎不起作用,我没有收到任何错误。我的 Segue 中缺少什么?
ViewController2.h
@interface ViewController2 : UIViewController {
IBOutlet UITextField *HomeTeam;
}
ViewController2.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
[segue.identifier isEqualToString:@"HomeTeam"];
NSString *homeTeamText = HomeTeam.text;
ViewController *vc = [segue destinationViewController];
vc.HomeTeamString = homeTeamText;
}
ViewController.h
@property (weak, nonatomic) IBOutlet UILabel *HomeTeamLabel;
@property (weak, nonatomic) NSString *HomeTeamString;
ViewController.m
@synthesize HomeTeamString, HomeTeamLabel;
【问题讨论】:
-
在你的方法中使用
NSLog打印homeTeamText和vc的值。 -
标签是否正确连接到 IB/Storyboard 中的引用
HomeTeamLabel? -
你对 segue id 真的是
"HomeTeam"有多大把握? -
你有写segue的名字吗?您的代码可能会与大量的“HomeTeam”以及“HomeTeam”显然既用作 TextField 名称又用作 Segue Identifier 的事实混淆。
-
可能是因为
NSString属性很弱,在segue 之后会立即释放。尝试将其设置为strong。通常,如果您在头文件中创建任何属性,则应始终将属性设置为强。
标签: objective-c uistoryboardsegue