我提交了我的应用以供审核并收到错误
2.10 - iPhone应用程序也必须在iPad上运行,无需修改,iPhone分辨率和2X iPhone 3GS分辨率。我们注意到,在运行iOS 9.1的iPad上进行审核时,您的应用无法以iPhone分辨率运行,这违反了App Store审核指南。我们附上了截图供您参考。具体来说,当我们点击在iPad上登录Facebook时,不会产生任何操作,我们无法让应用程序前进。
我已经使用信息plist和常规设置复制了ipad的第二个故事板。我还需要为不同的iphone设备制作不同的故事板,如图所示,我的设计无法通过自动约束进行。
我的问题是什么:我只是对旧的View控制器IB,就像我在故事板1上做的那样,并在每个VC上重复代码,或者我是否必须为新的VC创建所有新的VC故事板包括应用代表?其次,我必须在我的app委托中编写代码,以根据屏幕大小或剂量说明使用哪个故事板xcode 7在info plist中执行此操作?我似乎只能找到objc代码,我只知道很快。
答案 0 :(得分:6)
由于我的设计限制,我无法为所有设备尺寸使用一个故事板,所以为了解决我的问题,我将此代码添加到我的应用代表:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
var bounds: CGRect = UIScreen.mainScreen().bounds
var screenHeight: NSNumber = bounds.size.height
var deviceFamily: String
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "iphone35Storyboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("iphone35") as UIViewController
self.window!.rootViewController = viewcontroller
if screenHeight == 480 {
deviceFamily = "iPhoneOriginal"
// Load Storyboard with name: iPhone4
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "Main", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("iphone4") as UIViewController
self.window!.rootViewController = viewcontroller
} else {
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "IpadStoryboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("ipad") as UIViewController
self.window!.rootViewController = viewcontroller
if screenHeight == 920 {
deviceFamily = "Pad"
// Load Storyboard with name: ipad
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "IpadStoryboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("ipad") as UIViewController
self.window!.rootViewController = viewcontroller
}
}
}
然后创建一个新的故事板,将主故事板复制并粘贴到第二个故事板上并调整大小。它的工作方式与我针对不同的iphone尺寸相同。希望这有助于其他人。
答案 1 :(得分:4)
您不需要不同的故事板,只需要一个!您所要做的就是使用大小类。您可以处理单个故事板并设置不同的布局约束,甚至可以为每个大小类设置不同的UI元素。