2012-10-13 46 views
10

मैं स्टोरकिट इन-एप ऐप खरीद इंटरफ़ेस को कार्यान्वित कर रहा हूं और ऐसा लगता है कि SKStoreProductViewController आईपैड पर लैंडस्केप को संभालने में सक्षम है, ऐसा लगता है कि यह आईफोन पर मेरे ऐप के लिए ऐसा नहीं लगता है (यह सार्वभौमिक है)।SKStoreProductViewController और GKHostedAuthenticateViewController में आईफ़ोन लैंडस्केप मोड नहीं हैं

SKStoreProductViewController पर इंटरफ़ेस इतना सीमित है, मैं किसी भी तरह से VC में हेरफेर करने में सक्षम नहीं दिखता। क्या कोई और इसमें भाग लेता है? कोई काम-आसपास?

जब मैं आईपैड पर काम करने वाला कोड चलाता हूं, तो SKStoreProductViewController बायीं तरफ से एक इंच तक आता है, और खारिज होने तक वहां लटकता है। यह कार्यात्मक लगता है, लेकिन यह वीसी को गड़बड़ कर देता है जो इसे बर्खास्तगी पर पॉप अप करता है।

कोड यह रहा:

GKLocalPlayer.authenticateHandler = ^(UIViewController *loginVC, NSError *error) {}; 

दोहराना करने के लिए:: इन दोनों

// Set up the store vc (creating it if not already done) 
if (self.storeVC == nil) self.storeVC = [[SKStoreProductViewController alloc] init]; 
self.storeVC.delegate = self; 
NSDictionary *params = [NSDictionary dictionaryWithObject:appID forKey:SKStoreProductParameterITunesItemIdentifier]; 

// Set up a HUD in case connecting to the store takes a while 
[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 

[self.storeVC loadProductWithParameters:params 
         completionBlock:^(BOOL result, NSError *error) { 
     [MBProgressHUD hideHUDForView:self.view animated:YES]; 
     if (result) { 
      [self presentViewController:self.storeVC animated:NO completion:^{ 
      }]; 
     } 
    }]; 

और भी बेहतर, हम GKHostedAuthenticateViewController जो है ViewController विधि से लौटे पर एक ही समस्या हो रही है iPhones पर पोर्ट्रेट मोड में हैं (लेकिन आईपैड नहीं) और वे यूआई को पोर्ट्रेट मोड में जाने के लिए मजबूर करते हैं। लौटने पर, आपके ऐप का यूआई गड़बड़ हो गया है।

+1

मैं अभी भी एक ही समस्या में भाग गया। मैं लैंडस्केप केवल मोड में एक आईफोन ऐप बना रहा हूं। स्टोर में एक और आईओएस ऐप देखने के लिए 'SKStoreProductViewController' को फायर करना - 'SKStoreProductViewController' वास्तव में अच्छा नहीं दिखता है - नीचे तीन स्क्रॉलव्यू की सामग्री का चयन करने वाले तीन टैब हैं। स्क्रॉलव्यू पूर्ण परिदृश्य चौड़ाई का उपयोग नहीं करता है जो इसे देखता है ... 'आधा assed', मुझे नहीं लगता कि इसके लिए कोई और शब्द है। – Jonny

+1

@ जॉनी और नवीनतम आईओएस 7 पर और क्या है, skstoreproductviewcontroller वास्तव में लैंडस्केप मोड – OMGPOP

उत्तर

5

मैं एक समान समस्या में भाग गया। मेरा सार्वभौमिक ऐप परिदृश्य में है, लेकिन जबकि एसकेस्टोर प्रोडक्ट व्यू कंट्रोलर आईपैड पर लैंडस्केप में काफी अच्छी तरह से काम करता है, यह आईफोन पर दृश्य ग्लिच के साथ प्रस्तुत करता है।

मेरा समाधान आईफोन को चित्र में SKStoreProductViewController प्रस्तुत करने के लिए मजबूर करना था। यह थोड़ा दुखद है कि इसमें शेष ऐप के समान अभिविन्यास नहीं है, लेकिन यह आधे स्क्रीन काटने से बेहतर है।

मैं नीचे कस्टम उपवर्ग का उपयोग करके यह पूरा किया:

@interface SKPortraitStoreProductViewController : SKStoreProductViewController 
@end 

@implementation SKPortraitStoreProductViewController 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
     return UIInterfaceOrientationPortrait; 
    else 
     return [super preferredInterfaceOrientationForPresentation]; 
} 
@end
+0

पर क्रैश हो जाता है लेकिन ऐप आईफोन आईओएस 7 पर दुर्घटनाग्रस्त हो जाता है। मैं अभी भी समाधान की तलाश में हूं। – Emmy

+0

मुझे भी। क्या कोई भी लैंडस्केप ऐप पर आईओएस 7 पर SKStoreProductViewController का उपयोग करने में सफल रहा है? – Mayoneez

0

अपने SKStoreProductViewController पर modalPresentationStyle संपत्ति को बदलने यह प्रस्तुत करने से पहले की कोशिश करो।

मुझे इसे UIModalPresentationPageSheet पर सेट करके शुभकामनाएं मिली हैं जो परिदृश्य आईपैड केस को अच्छी तरह से कवर करने के लिए प्रतीत होता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^