在UITabViewController中的选项卡之间传递字符串时标签不更新

时间:2012-07-20 07:58:04

标签: iphone ios uiviewcontroller uitabbarcontroller

我是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中编写代码,但到目前为止还没有任何工作。字符串显示正确的值,但标签未更新。这有什么不对?

1 个答案:

答案 0 :(得分:0)

好的发现错误:

这是一个小错字:我已将IBOutlet声明为:

IBOutlet UILabel * textlabel;

和财产:

@property (nonatomic, strong) UILabel * textLabel;

已将插座附加到textlabel并已更新textLabel。修好了,事情很好!