0

iOS 5.1.1の URL からUIPIckerビューのラベル値を動的にロードしているため、ビューが表示された後に更新する必要があります。ピッカーがインスタンス化されたときに(メソッドを介して)値で初期化すると、すべてが機能します。ピッカーを後で呼び出すと、実際にメソッドを介してデータソースを照会し、選択した行を取得すると、実際に新しい値が入力されていることが示されます。問題は、フィールドがまだ として表示されることです。ピッカーデータソース、、およびはすべてファイルの所有者に設定されています (私はdelegatereloadAllComponentsdelegateblankdelegateIBOutlet.xib)。インスタンス化時に初期ダミー値をピッカーにロードすると、ピッカーが実際に更新された後でもそれらの値が表示されます。私はこれについて頭を悩ませています。GUIの値が更新されない理由を説明できる人はいますか? ありがとう、クリフ

[更新]
ピッカーが更新された後にアプリをバックグラウンドにすると、正しい値で再表示されることがわかりました]。本当につながりがなくなった気がします。電話をかけてみましたがsetNeedsDisplay、成功しませんでした。

4

1 に答える 1

1

共有したくないほど多くのアプリケーション コードがあったため、コードを除外しました。私は実際に問題を理解しました。コールバックを介してピッカーにデータを入力していましたNSNotification。これは明らかにメインスレッドで実行されず、問題を引き起こしました。通知コールバックの本体がメインスレッドで実行されるようにすることにより、

dispatch_async(dispatch_get_main_queue(), ^{
    MY CODE HERE
});

すべてが正しく機能するようになりました。崖

于 2012-07-24T20:31:46.310 に答える