0

NSNotification センターを使用して呼び出されたメソッドを使用して、別のビューで UILabel を更新しています。

私が見つけたのは、それが機能していないということです.後でビューがリロードされるまで、ラベルは変更されません(nsnotificationセンターによって呼び出されるメソッドを使用しません)。

ラベルは非アトミックの保持に設定されており、self を使用してすべてをそのプロパティにバインドしています。

明らかに、ラベルを更新しようとするすべてのコード (メソッド) は、対応する viewController にあります。メソッドが呼び出され (NSLog で確認できます)、それが行うのは self.label2.text = @"label 2 updated"; だけです。

タイマーを使用してラベルのテキスト値を正常に更新できるので、ラベルに問題があるとは思いませんが、スレッドおよび/または特定のときに読み込まれるものと読み込まれないものについての私の理解に問題があるとは思いません時間。

何が問題だと思いますか?

PS: あまり役に立たなくても答えを選びますので、あなたの最もワイルドな推測を投稿してください!

4

1 に答える 1

1

nil最初に、テキストを設定するときにラベルがないことを確認してください。

そうでない場合は、テキストを設定した後にラベルをnil呼び出しsetNeedsLayoutてみてください (これは必要ありません)。また、次のコマンドを使用してメイン スレッドにいることを確認します。

[NSThread isMainThread]

それでも問題が解決しない場合は、 のサブクラスを使用してUILabelオーバーライドsetTextし、それにブレークポイントを設定して、何が起こっているかを確認してください。

于 2012-09-02T00:34:46.677 に答える