2014-10-09 92 views
3

我已將iPhone應用程序提交給帶有iOS 8共享擴展的AppStore。它從AppStore被拒絕的原因是「共享」擴展名是全屏而不受限制的。託管擴展程序的應用程序必須遵守應用程序擴展編程指南

我正在通過擴展UIViewController和使用Xib來創建自定義用戶界面。我的應用程序僅適用於iPhone,當我在iPad中安裝應用程序並通過Safari瀏覽器打開擴展程序時,它會以全屏顯示,並且不限於iPhone屏幕。

原因

25.1:應用程序託管擴展程序必須符合應用程序擴展編程指南 ----- ----- 25.1

我們發現您的應用擴展的主機(一個或多個),但不不符合App Store評論指南要求的App Extension Programming Guide。

具體而言,我們發現您的「共享」擴展程序是全屏顯示的,不受限制。

+0

你是如何解決這個問題的? 在文檔中我看到:「您可以將視圖建立在系統提供的組合視圖控制器上,或者可以創建完全自定義的組合視圖」。 我沒有發現它被禁止使用全屏。但這是禁止的。 – Pavel 2014-10-24 21:18:15

回答

1

我需要共享擴展的自定義用戶界面,並通過擴展UIViewController來完成。我將應用程序提交給AppStore,但沒有實現preferredContentSize和modalPresentationStyle,它從AppStore中被拒絕,因爲擴展視圖在iPad中全屏顯示。

在apple文檔中提到:Apple Doc當您有額外的內容顯示時,您可以依靠自動佈局約束來適當調整視圖的高度。如果您不使用自動佈局,則可以使用UIViewController屬性preferredContentSize指定視圖的新高度。

我使用XiB因此在共享擴展plist中添加NSExtensionPrincipalClass設置爲InitialViewController。

在InitialViewController

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    ShareViewController *vcShare = [[ShareViewController alloc] initWithNibName:@"ShareViewController" bundle:nil]; 
    vcShare.extensionContext = self.extensionContext; 
    UINavigationController *ncController = [[UINavigationController alloc] initWithRootViewController:vcShare]; 

    [self.navigationController pushViewController:vcShare animated:NO]; 
    ncController.preferredContentSize = CGSizeMake(300.0, 420.0); 
    ncController.modalPresentationStyle = UIModalPresentationFormSheet; 
    ncController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

    [self presentViewController:ncController animated:NO completion:nil]; 
} 

它顯示全屏幕的iPhone,但在iPad上它不會在全屏幕顯示。我做了上面的更改,然後在AppStore中接受應用程序。

+0

如何設置'vcShare.extensionContext'如果它是'readonly'屬性? – 2015-01-28 18:24:13