1

現在、viewDidLoad メソッドでビューを作成しています。別のビューにリンクするさまざまなボタンが追加されています。私が抱えている問題は、ユーザーがボタンをクリックして IAP を購入できる他のビューに移動したときに、ユーザーが戻るボタンをクリックしたときに、ビューを「更新」して、この購入を示すことです。が活躍するようになりました。

ビューを更新するにはどうすればよいですか?

前もって感謝します

4

3 に答える 3

0

でビューを構築しviewDidLoadて、コントロールを 1 回だけ追加し、 で更新しviewWillShowます。viewWillShowによってビルドが完了した直後に更新されることに注意してくださいviewDidLoad。したがって、コントロールの外観を定義する値を最初viewControllerに、たとえばデリゲート可変配列に保持します

たとえば、 and .mで an を作成して開始NSMutableArrayしますAppDelegate.h

.h インターフェースで

NSMutableArray *yourArray;

プロパティを追加

@property (retain, nonatomic) NSMutableArray *yourArray;

メートルで

@synthesyze yourArray;

.m で開始する

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

yourArray=[[NSMutableArray alloc]init];

//add initial objects to it as many as you have controls
}

最初にviewController

#import "AppDelegate.h"

-(void)viewWillShow:(BOOL)animated{

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

//pull objects from array and apply to your controls, say you have a string as a 1st obj

NSString *tmpStr=[appDelegate.yourArray objectAtIndex:0];//use it some where, say button's title

//etc
}

viewControllerユーザーの選択に応じて、2番目にこれらの値を変更します

#import "AppDelegate.h"

2番目のコードのどこかでviewController、yourArrayの値を更新します

-(void)viewWillDisappear:(BOOL)animated{

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

//run a loop and update all objects

[appDelegate.yourArray replaceObjectAtIndex:i withObject:newObj];
}

viewController1stに戻るとviewWillShow、デリゲート配列から更新されます。

于 2014-03-19T19:32:27.613 に答える
0

いくつかのオプションがあります。購入が行われたかどうかを保存してから、変更したいビューのviewWillAppearメソッドで購入が行われたかどうかを確認するメソッドを実行します

または...購入ページで変更が行われたときにボタンを変更するデリゲート コールバックをセットアップします (http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-custom-delegates/)

または... navigationController スタック ([[self.navigationController viewControllers]objectAtIndex:YOURVIEW]) からアクセスして、前のビューを直接操作します。

于 2012-12-12T16:13:55.767 に答える
0

どのビューもsetNeedsDisplay、そのビューを呼び出すことで明示的に更新できます。さらに、用語を と
混同しないでください。 自己プログラムされたカスタムビューでのみ発生する更新の問題はないと思います。関連するビューのデータが更新されていないことが予想されます。UIViewControllerUIView

于 2012-12-12T11:36:08.433 に答える