我是iOS的初学者,我正在编写一些练习代码,我试图在UITabViewController
中将一个字符串从一个标签传递到另一个标签,并使用标签在下一个标签中显示它。现在我传递消息的代码是:
-(IBAction)sendMessage:(id)sender
{
MessageRecepientViewController * contoller = [self.tabBarController.viewControllers objectAtIndex:1];
[contoller passString:_textField.text];
self.tabBarController.selectedIndex = 1;
}
我收到的文字(在第二个视图控制器中)为:
-(void) passString:(NSString *) str
{
_string = str;
}
在viewDidAppear
,我这样做:
- (void) viewDidAppear:(BOOL)animated
{
self.textLabel.text = [NSString stringWithString:_string];
NSLog(@"did appear called, str = %@ and label text = %@", _string, self.textLabel.text);
}
并且日志显示字符串的值是应该传递的文本,但textLabel.text的值始终为null。
我已经尝试了所有我能想到的东西,检查UILabel是否附加到textLabel
插座,以便在viewWillAppear和viewDidLoad中编写代码,但到目前为止还没有任何工作。字符串显示正确的值,但标签未更新。这有什么不对?
答案 0 :(得分:0)
好的发现错误:
这是一个小错字:我已将IBOutlet
声明为:
IBOutlet UILabel * textlabel;
和财产:
@property (nonatomic, strong) UILabel * textLabel;
已将插座附加到textlabel
并已更新textLabel
。修好了,事情很好!