2011-02-03 6 views
0

xcodeとインターフェースビルダー3.2.5を使用していて、http://appsamuck.com/day1.htmlウェブサイトから最初のアプリを実装しようとしています。私はすべての指示に従っていると信じていますが、アプリは機能しません。このアプリは、ビュー内のcountdownLabel(黒い背景の上に表示される)というラベルを作成する方法を教え、CountdownLabelをInterface Builderに接続します。アプリでUILabelが更新されないのはなぜですか?Amuck MinutesToMidnight iPhoneチュートリアル

  • (BOOL)アプリケーション:(のUIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionaryの*)launchOptions {

    タイマ= [NSTimer scheduledTimerWithTimeInterval:(1.0)ターゲット:自己アプリappDelegate内のタイマをスタートセレクタ:@セレクタ(onTimer)userInfo:nilリピート:YES];

... }

各タイマティックで、appDelegateにOnTimer方法は、真夜中の前に時間、分、秒を識別する文字列でcountdownLabelを更新するためのViewControllerメソッドを呼び出します。アプリが実行されると、countdownLabelは決して更新されません。代わりに、背景が白くなります。

ブレークポイントを設定すると、タイマーが正常に実行されている(つまり、onTimerを定期的に呼び出している)ことを確認し、メソッドを呼び出してcountdownLabelを更新しています。最初のタイマーイベントが今まで発生する前にしかし、のViewController法 "loadViewメソッド" への呼び出しが行われます

  • (無効)loadViewメソッド{ [countdownLabelのsetFont:[UIFont fontWithName:128.0]: "DBLCDTempBlack" サイズ@ ]; countdownLabel.text = @ "I0A0IN6"; }

この方法で停止すると、countdownLabelの内容が0x0であることがわかります。 appDelegate onTimerメソッド内でブレークポイントへの実行を続行すると、画面が白くなります。このメソッドは、countdownLabelを更新するメソッドを呼び出しますが、ラベルは決して変更されません(おそらく、countdownLabelの値が0x0のままであるため)。

なぜカウントダウンラベルは0x0ですか?いくつかの初期化や接続がありますか?

答えて

1

(Interface Builderでのラベルにファイルの所有者でIBOutletをリンク)あなたは正しくこれらの手順をしたことを再確認し

今、私たちは にUILabelに Interface Builderでラベルを配線する必要がありますクラスファイル

ウィンドウを表示または 文書でラベルを選択してInterface Builderの

を再度開きます

クリック:ツール - >接続インスペクタ

はテキストの右側の「新規 の参照・アウトレット」に空 円の上にマウスカーソルを移動

(円がプラス(+)へ 変更は意志)

> S - ファイル:マウスを使用すると、ポップアップリストに

クリックして選択countdownLabel を離すとドキュメントウィンドウで「ファイルの所有者」 に

をプラス(+)をドラッグし、[OK]をクリックしますave then close インターフェイスビルダー

+0

Ned、ありがとう。はい、私はこれが正しく行われたことを確認しました。しかし、まだこれは動作するように運がない。他の考え? –

+1

これはおそらく、(空)loadViewではなく、 - (void)viewDidLoadにフォントを設定しているからでしょう。 - (void)の定義を提供すると、loadViewはペン先の読み込みをスキップして白い画面を表示します。そのメソッドを変更することがトリックを行うかどうかを確認してください。 – Ned

+1

ああ私のゴシック。あなたは、絶対に正しい。それは苦しい教訓でした。本当にありがとう。 –

関連する問題