我需要用于共享扩展的自定义 UI,并通过扩展 UIViewController 来实现。我向 AppStore 提交了应用程序,但没有实现 preferredContentSize 和 modalPresentationStyle 它被 AppStore 拒绝,因为扩展视图在 iPad 中全屏显示。
在苹果文档中提到:Apple Doc当您有额外的内容要显示时,您可以依靠自动布局约束来适当地调整视图的高度。如果不使用 Auto Layout,可以使用 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 中被接受。