gpt4 book ai didi

objective-c - 横向 xib 仅适用于 ipad 版本

转载 作者:行者123 更新时间:2023-12-01 19:15:23 24 4
gpt4 key购买 nike

我有一个适用于 iPhone 和 iPad 的通用应用程序,带有单独的 xib

对于 iPad 版本,我希望我的 iPad xib 之一处于横向模式。我已在模拟指标中将其设置为横向(该应用程序在摘要屏幕中设置为纵向),并且横向 View 在运行时仍以纵向显示。我确定我在这里阅读了一个命名约定,它告诉应用程序 xib 是横向的,即:view1_one.xib~ipad-landscape
我尝试过使用屏幕旋转方法,但 iOS 6 屏幕旋转只是证明如此令人沮丧,因为我尝试了很多解决方案,但都没有效果。我之前在 iOS 6 中完成过屏幕旋转,但我使用 Storyboard并为我选择的 View 子类化导航 Controller ,我不知道如何使用此代码执行此操作,因为我从其他人那里选择了 ip

总结一下:如何让我的屏幕尊重我在界面生成器中创建的横向 xib 而不是纵向显示它

我会指出我已经在这里搜索了一个解决方案并在发布之前花了很多时间

最佳答案

资源(包括 xib)有一些命名约定,用于指定加载它们的设备类型。然而,这些并不存在于特定的方向。 -landscape不会做任何额外的事情(更具体地说,它可能也会在 iPhone 上加载资源,这不是您想要的)。

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html#//apple_ref/doc/uid/10000051i-CH1-SW2

至于处理方向变化,请确保您同时实现了 iOS 5 及以下的方法以及处理它们的 iOS 6 方法:

// Older versions of iOS (deprecated)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

// iOS6
- (BOOL)shouldAutorotate {
return YES;
}

// iOS6
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}

// Added after comment
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}

这是确保您的 viewController 仅在横向加载的官方方法。

编辑:

我添加了 preferredInterfaceOrientationForPresentation方法也是。虽然我个人不喜欢这种方法,但它会强制 viewController 以该方向呈现,直到下一次方向改变。不好,但它会帮助您查看您的定向方法是否被调用。

还要尝试在这些方法中的每一个中设置断点。如果他们根本没有被调用,您的问题可能与子类化有关。确保 Storyboard 中的 viewController 设置为子类而不是父类(super class)。

编辑2:

在 Interface Builder 中检查:

Make sure that the ViewController in Interface Builder is set to the appropriate subclass

关于objective-c - 横向 xib 仅适用于 ipad 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com