2014-01-11 1 views
1

앱에서 InApp 구매를 설정 중입니다.앱 구매시 : 구매보기 컨트롤러에 제품 정보가 표시되지 않음

"구매 액세스"버튼이있는 하나의보기 컨트롤러 (메인보기 컨트롤러)가 있습니다. 이 버튼을 탭하면 다음 View Controller (Purchase View Controller)로 이동해야합니다.

문제는 PurchaseViewController에 InApp 구매에 대한 정보가 표시되지 않습니다. 제품 제목에 UILabel 콘센트를 설정하고 제품 설명에 UITextView을 설정했지만 새로 고치거나 해당 텍스트를 채우는 것은 없습니다.

제품 ID는 MainViewController입니다.

무엇이 붙어 있나요?

PurchaseViewController.h

@interface PurchaseViewController : UIViewController 
<SKPaymentTransactionObserver, SKProductsRequestDelegate> 

@property (strong, nonatomic) SKProduct *product; 
@property (strong, nonatomic) NSString *productID; 
@property (strong, nonatomic) IBOutlet UILabel *productTitle; 
@property (strong, nonatomic) IBOutlet UIButton *buyButton; 
@property (strong, nonatomic) IBOutlet UITextView *productDescription; 
- (IBAction)buyProduct:(id)sender; 
- (void)getProductInfo:(UIViewController *)viewController; 

@property (nonatomic) int buttonNumber; 

@end 

PurchaseViewController.m

#pragma mark - SKProductsRequestDelegate 
- (void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { 
    NSArray *products = response.products; 
    if (products.count !=0) { 
     _product = products[0]; 
     //_buyButton.enabled = YES; 
     _productTitle.text = _product.localizedTitle; 
     _productDescription.text = _product.localizedDescription; 
    } 
    else { 
     _productTitle.text = @"Product not found"; 
    } 

    products = response.invalidProductIdentifiers; 

    for (SKProduct *product in products) { 
     NSLog(@"Product not found: %@", product); 
    } 

} 



- (IBAction)buyProduct:(id)sender { 
    SKPayment *payment = [SKPayment paymentWithProduct:_product]; 
    [[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 

#pragma mark SKPaymentTransactionObserver 

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for (SKPaymentTransaction *transaction in transactions) { 
     switch (transaction.transactionState) { 
      case SKPaymentTransactionStatePurchased: 
       [self unlockFeature]; 
       [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
       break; 

       case SKPaymentTransactionStateFailed: 
       NSLog(@"Transaction Failed"); 
       [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
       break; 

      default: 
       break; 
     } 
    } 
} 

편집 : 나는 PurchaseViewController 부하를 단지 벌금 NSLogproductTitleproductDescription을 받고 있지만, 시간을 기준으로하고있어, 그들에 대한 텍스트는 아직 업데이트되지 않았다. 그 방법들은 viewDidLoad 후에 호출되는 것 같습니다.

답변

0

viewDidLoad가 변경되었습니다. 어리석은 실수.

+0

나는 당신과 똑같은 문제가 있습니다. 대답 좀 상세 해 주시겠습니까? – GoldXApp

+0

안녕하세요 @ GoldXApp, 죄송합니다 Stack Overflow 같은 주제 로이 질문을 마감했다. – Realinstomp