2012-10-13 39 views
10

Tôi đang thực hiện các giao diện StoreKit mua ứng dụng trong ứng dụng và mặc dù nó xuất hiện rằng SKStoreProductViewController xử lý cảnh quan trên iPad, nó không xuất hiện để làm như vậy cho ứng dụng của tôi trên iPhone (nó phổ biến).SKStoreProductViewController và GKHostedAuthenticateViewController không có iPhone chế độ phong cảnh

Giao diện đến SKStoreProductViewController quá hạn chế, tôi dường như không thể thao tác VC bằng bất kỳ cách nào. Có ai khác gặp phải điều này không? Bất kỳ công việc nào?

Khi tôi chạy mã hoạt động trên iPad, SKStoreProductViewController xuất phát từ phía bên trái, khoảng một inch và treo ở đó cho đến khi bị loại bỏ. Nó có vẻ chức năng, nhưng nó làm hỏng VC đã xuất hiện sau khi bị sa thải.

Dưới đây là các mã:

// 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:^{ 
      }]; 
     } 
    }]; 

Thậm chí tốt hơn, chúng tôi đang gặp vấn đề tương tự trên GKHostedAuthenticateViewController là viewController trở về từ phương pháp:

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

Để nhắc lại: cả hai đang ở chế độ dọc trên iPhone (nhưng không phải iPad) và chúng buộc giao diện người dùng đi vào chế độ dọc. Khi trở về, giao diện người dùng của ứng dụng của bạn bị rối tung lên.

+1

Tôi vừa gặp sự cố tương tự ngay bây giờ. Tôi đang tạo một ứng dụng iPhone ở chế độ ngang. Kích hoạt 'SKStoreProductViewController' để xem một ứng dụng iOS khác trong cửa hàng -' SKStoreProductViewController' không thực sự đẹp - có ba tab chọn nội dung của scrollview bên dưới. Scrollview không sử dụng chiều rộng toàn cảnh làm cho nó trông ... 'half-assed', tôi không nghĩ có bất kỳ từ nào khác cho nó. – Jonny

+1

@Jonny và những gì hơn nữa, trên ios mới nhất 7, skstoreproductviewcontroller thực sự treo trên chế độ phong cảnh – OMGPOP

Trả lời

5

Tôi đã gặp sự cố tương tự. Ứng dụng toàn cầu của tôi ở chế độ ngang, nhưng trong khi SKStoreProductViewController hoạt động khá tốt trong cảnh quan trên iPad, nó thể hiện sự ổn định thị giác trên iPhone.

Giải pháp của tôi là buộc iPhone hiển thị SKStoreProductViewController theo chiều dọc. Đó là một chút buồn rằng nó không có định hướng giống như phần còn lại của ứng dụng, nhưng nó tốt hơn so với việc cắt một nửa màn hình.

tôi thực hiện điều này bằng cách sử dụng các lớp tùy chỉnh dưới đây:

@interface SKPortraitStoreProductViewController : SKStoreProductViewController 
@end 

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

Nhưng ứng dụng treo trên iphone iOS 7. Tôi vẫn đang tìm kiếm giải pháp. – Emmy

+0

Tôi cũng thế. Có ai đã thành công trong việc sử dụng SKStoreProductViewController trên iOS 7 trên ứng dụng ngang không? – Mayoneez

0

Hãy thử thay đổi modalPresentationStyle tài sản trên SKStoreProductViewController của bạn trước khi trình bày nó.

Tôi đã có may mắn bằng cách đặt nó thành UIModalPresentationPageSheet mà dường như bao gồm trường hợp iPad phong cảnh khá tốt.