我有两个视图控制器。其中之一显示可用的应用程序内购买。当用户选择其中一个时,它会显示一个新的View Controller,其中包含“ Purchase”和“ Buy”按钮的详细信息。
我将代码从第一个视图传递到第二个视图的方式如下:
-(IBAction)purchase1:(id)sender{
_purchasedController = [[iPadPurchasedViewController alloc] initWithNibName:nil bundle:nil];
_purchasedController.productID = @"xxxxx.xxxxx.xxxxx";
[self presentViewController:_purchasedController animated:YES completion:NULL];
[self.purchasedController getProductID:self];
}
因此,当用户选择一个按钮时,我将productID字符串传递给第二个ViewController。但是,我想在第一个View Controller上向用户展示价格。有人可以帮我吗?谢谢你。
编辑答案以使其更完整:
在您的ViewController.h文件中,应该有
@interface ViewController : UIViewController <SKProductsRequestDelegate> {
NSArray *allProducts;
}
然后在ViewController.m例如。在viewDidload
:
-(void) viewDidload {
[super viewDidLoad];
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects:@"xxxx1",@"xxxx2",nil]];
request.delegate=self;
[request start];
}
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
allProducts = response.products;
NSLog(@"Fetched %d products", allProducts.count);
}
然后可以这样使用:
-(NSString*) getPriceForProductWithID:(NSString*)productID{
if(allProducts.count < 1) {
NSLog(@"Did not fetch products yet");
}
else {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
for(SKProduct * product in allProducts) {
if([product.productIdentifier isEqualToString:productID])
{
[numberFormatter setLocale:product.priceLocale];
NSString *priceString= [numberFormatter stringFromNumber:product.price];
NSLog(@"Product with ID: %@ has price: %@",product.productIdentifier, priceString);
return priceString;
}
}
}
return nil;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句