1

Xcode 4.3を使用していて、あるView Controllerに、別のViewControllerのテキストフィールドのテキストを更新するラベルがあります。これはどのようにすればよいですか?

4

1 に答える 1

0

モデルクラスにテキストを配置する必要があります(テキストが存在すると仮定します。存在しない場合は、作成する必要があります)。エンドユーザーがテキストフィールドを編集するとき、コードはモデルの文字列を変更する必要があります。ラベルが表示されたら、モデルからそのテキストを読み取る必要があります。複数のクラス間でモデルを共有する最も簡単な方法は、シングルトンを定義することです。

ヘッダ:

@interface Model : NSObject
@property (NSString*) labelText;
+(Model*)instance;
@end

実装:

@implementation Model
@synthesize labelText;
+(Model*)instance{
    static Model *inst;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        inst = [[Model alloc] init];
    });
    return inst;
}
-(id)init {
    if (self = [super init]) {
        labelText = @"Initial Text";
    }
    return self;
}
@end

モデルの使用:

// Setting the field in the model, presumably in textFieldDidEndEditing:
// of your UITextField delegate
[Model instance].labelText = textField.text;

// Getting the field from the model, presumably in viewWillAppear
myLabel.text = [Model instance].labelText;
于 2012-08-01T18:30:21.383 に答える