0

画面上のボタンを関数[selfmakeButtons]から移動しているとき、ビューコントローラーを押してから元に戻さない限り、何も起こりません。UITableViewsの場合と同様に、ViewControllerのデータの再読み込み関数はありますか?NavigationControllerを使用しており、UISrollViewにサブビューを追加し、画面上の他のボタンを移動しています。このメソッドは、ASIFORMHTTPRequestを使用してデータをフェッチした後に呼び出されます。

編集:申し訳ありませんが、これ以上指定しませんでした。

[request startAsynchronous](ASIFORMHTTPrequest)を送信しているメソッドがあります。すべてのボタンを含むNSMutableArrayがあります。リクエストが完了すると、doneGettingRequestというメソッドが次のようになります。

- (void) doneGettingRequest(ASIFORMHTTPRequest *) request {
    [self removeButtons];
}

このメソッドを呼び出しています。

- (void) removeButtons {
    NSLog(@"Removing buttons!");
    for (UIButton *button in gameButtons) {
        [button removeFromSuperview];
}

別のビューに移動してから再び戻ると、すべてが機能します。問題は、メソッドが呼び出されたときにそのビューが表示されている場合は更新されないことです(これはほとんどの場合に発生します)。gameButtonは、現在表示されているボタンを含むNSMutableArrayです。それらの削除が完了したら、他のボタンをいくつか追加したいと思います。問題は、removeButtonsが呼び出されたときにボタンが削除されないことです。「ボタンを外します!」というメッセージ ただし、が表示されているため、メソッドが呼び出されています。

助言がありますか?ありがとう

4

2 に答える 2

1

ロジックをviewWillAppearに配置できます。

このメソッドは、レシーバーのビューがビュー階層に追加される前、およびビューを表示するためのアニメーションが構成される前に呼び出されます。

このメソッドをオーバーライドして、ビューの表示に関連するカスタムタスクを実行できます。

このメソッドをオーバーライドする場合は、実装のある時点でsuperを呼び出す必要があります。

于 2012-05-05T04:46:36.280 に答える
0

やってみました

 [view setNeedsDisplay];
于 2012-05-04T20:30:54.690 に答える