高熱でちょっと忘れかけておりますが、日々の積み重ねが大事です!
ではViewControllerの実装です。
MyViewController.m で警告が出ているはずです。
MyViewController.h で property 指定した textField , label , string に対するメソッドがないという事なので、アクセサメソッドの実装をしてやります。
- @synthesize textField;
- @synthesize label;
- @synthesize string;
これらのインスタンス変数が正しく解放されるように dealloc に追記します。
- - (void)dealloc {
- [textField release];
- [label release];
- [string release];
- [super dealloc];
- }
ボタンを押させると changeGreeting がコールされる所まで確認しましたので、ここでテキストフィールドから文字列を取得し、ラベルを書き換えるようにします。
- - (IBAction)changeGreeting:(id)sender {
- self.string=textField.text; // textFieldから文字列を取得し、自身のstring変数に格納します。
- NSString *nameString=string;
- if([nameString length]==0) {
- nameString=@"World"; // textFieldの文字列が空なら World を代入する
- }
- NSString *greeting=[[NSString alloc] initWithFormat:@"Hello, %@!",nameString]; // ラベルに表示するメッセージを作成
- label.text=greeting;
- [greeting release];
- }
ここまででビルドすると、以下のような結果が得られます。

大筋は完了しましたが、キーボードが閉じられない事に気がつくでしょう。
MyViewController.m に以下のコードを追記します。
- - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
- if(theTextField==textField) {
- [textField resignFirstResponder];
- }
- return YES;
- }
再度実行すると、Doneでキーボードが隠れる事を確認できます。
以上で完成です!思ったより長かったです・・・体が痛い(T_T)