0

私は iOS の初心者で、あるタブから別のタブに文字列を渡し、UITabViewControllerラベルを使用して次のタブに表示する練習コードを書いています。メッセージを渡すコードは次のとおりです。

-(IBAction)sendMessage:(id)sender
{
    MessageRecepientViewController * contoller = [self.tabBarController.viewControllers objectAtIndex:1];
    [contoller passString:_textField.text];
    self.tabBarController.selectedIndex = 1;
}

そして、私はここで(2番目のView Controllerで)テキストを次のように受け取ります:

-(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 がアウトレットに接続されていることを確認することから、viewWillAppear および viewDidLoad でコードを記述することまで、考えられるすべてを試しましたがtextLabel、これまでのところ何も機能していません。文字列は正しい値を表示していますが、ラベルは更新されていません。ここで何が問題なのですか?

4

1 に答える 1

0

エラーが見つかりました:

ちょっとしたタイプミスでした: 私は次のように宣言IBOutletしました:

IBOutlet UILabel * textlabel;

およびプロパティとして:

@property (nonatomic, strong) UILabel * textLabel;

にコンセントを付けtextlabelてアップデートしていましたtextLabel。これを修正し、問題ありません。

于 2012-07-20T09:28:04.063 に答える