0

インターネット接続をチェックし、その結果に基づいてさまざまなアクションを実行するページがあります。たとえば、インターネットに接続されていない場合、ファイルをダウンロードするためのボタンが無効になっている、特定のボタンがナビゲーションバーに表示されていない、特定のテキストの色が異なるなどです。

ユーザーがインターネットに接続してページをリロードできるように、「更新」ボタンを追加したいと思います。

私の質問は、ビューを更新するにはどうすればよいですか?[selfviewDidLoad]を呼び出す; これはすべてのロジックが存在する場所ですが、確かに正しくありません。スーパービューからビューを削除して再挿入する必要がありますか、それとも削除せずにそれを行う方法はありますか?

ありがとう

4

3 に答える 3

0

Refreshing または view design のロジック全体を別のメソッドに記述し、再度更新するときにそれを呼び出します。

 ViewDidLoad
  {
    [self loadViewDesign];
  [[(uibutton *) addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventTouchUpInside];
  }

- (void)loadViewDesign
  {
     ....
       ...
        ..
     }

 - (void)refreshData
   {
 [self loadViewDesign];
   }
于 2013-02-01T13:15:54.763 に答える
0

私はこのようにします:

viewDidLoad では、すべてのカスタム UI 要素を作成します。レイアウトがデータ自体に動的に反応しない限り、そこにレイアウトすることさえできます。UIElements は 1 回だけ作成します。

configureView という名前の別の方法で、データをロードします (非同期でない限り - そうすることをお勧めします) - それに応じて UI 要素をセットアップします。スイッチ値、ラベル付きテキストなどを設定します。おそらく、要素をレイアウトするか、非表示/非表示解除するか、有効化/無効化します。

ほとんどの場合、viewDidLoad から configureView を呼び出します。または、viewWillBecomeVisible から呼び出します。その場合、他のプッシュされたビューから戻ったとき、またはタブ バー内でビューに戻ったときにビューが表示されるようになった場合でも、ビューは更新されます。

更新メカニズム (おそらくボタンにリンクされたアクション) は、データを再ロードしてから、configureView メソッドも呼び出します。

于 2013-02-01T13:23:51.807 に答える
0

あなたの機能がインターネットをチェックすることでありReachability、Appleのクラスを使用している場合は、次のように記述してください

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];

あなたのviewDidLoad

そして、このコードを書きます

-(void)startInternetAvailableCheck
{
    internetReach = [Reachability reachabilityForInternetConnection];
    [internetReach startNotifier];
    [self updateInterfaceWithReachability: internetReach];
}

-(void)updateInterfaceWithReachability:(Reachability*)curReach
{
    if(curReach == internetReach)
    {   
        NetworkStatus netStatus = [curReach currentReachabilityStatus];
        switch (netStatus)
        {
            case NotReachable:
            {
                MyLog(@"Access Not Available");

                break;
            }

            case ReachableViaWWAN:
            {
                MyLog(@"Reachable WWAN");

                break;
            }
            case ReachableViaWiFi:
            {
                MyLog(@"Reachable WiFi");

                break;
            }
        }

    }
}

//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification* )note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}

上記のupdateInterfaceWithReachability機能では、ビューを更新できます。つまり、それに応じてボタンを有効または無効にできます。

これがあなたに役立つことを願っています..

于 2013-02-01T12:58:51.760 に答える