- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我想要一些 ViewControllers 风景和一些肖像,所以这就是我所做的:
我启用了横向模式:
接下来我将这些代码行添加到我想成为肖像的 View Controller 中:
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationPortrait;
}
-(BOOL)shouldAutorotate
{
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}
但是,当我旋转它们时,它们仍然会进入横向模式。我该如何解决这个问题?
最佳答案
Apple 为 UINavigationController
设计的方法是通过 UINavigationControllerDelegate
。
通常我只是更新这个委托(delegate)来执行以下操作并将它委托(delegate)给导航 Controller 堆栈中的顶部显示 Controller :
#pragma mark - UINavigationControllerDelegate
- (NSUInteger)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController
{
return [navigationController.topViewController supportedInterfaceOrientations];
}
在我看来,UINavigationController
应该默认为上述行为,但这是 Apple 提供的 api :)
至于信息 plist 文件,我取消选中所有选项并在代码中处理它,因为它在过去给我带来了问题,我厌倦了处理它。
关于ios - supportedInterfaceOrientations 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21785767/
SO 中有几个关于未发生方向更改的类似问题,但似乎都没有解决此处的问题。 具体来说,我正在使用supportedInterfaceOrientations 和 preferredInterfaceOr
我有带三个 UIViewController 的 Tab Bar Controller 应用程序,所有这些都在 Storyboard中完成。 设备方向设置为所有方向,颠倒除外。 对于一个 UIView
我有一个项目,其中所有 View 都只能是纵向 View ,除了一个只有横向 View 且不能自动旋转的 View 。我在项目设置中将支持的方向设置为纵向和横向。然后我为每个 View Control
supportedInterfaceOrientation 应该只在 viewDidLoad 时调用一次,但在我的例子中,每次模拟器旋转时都会调用它。 我只需要两个方向 potrait 和 portr
我有一个带有多个 View Controller 的应用程序,其中大部分应该能够有任何方向,但一个必须是纵向的。但是,应用程序忽略了我从 supportedInterfaceOrientations(
我正在使用 Storyboard快速构建应用程序。它由 UITabBarController 组成, 一个 UINavigationController and three UIViewControl
我想要一些 ViewControllers 风景和一些肖像,所以这就是我所做的: 我启用了横向模式: 接下来我将这些代码行添加到我想成为肖像的 View Controller 中: -(NSUInte
所以我有一个可以旋转到任何方向的根 Controller 和一个使用 supportedInterfaceOrientations 只显示横向模式的 View Controller - (NSUInt
我的 Root View Controller 对 supportedInterfaceOrientations 的实现几乎总是返回 UIInterfaceOrientationMaskAll,但是有
我有一个包含以下代码的 UIViewController: - (BOOL) shouldAutorotate { return NO; } -(NSUInteger)supportedIn
升级到 Xcode 7.0 后,我在 UIViewControllerRotation 方法中收到警告:- (NSUInteger)supportedInterfaceOrientations: Co
我有一个非常复杂的问题(或者我认为如此)。我正在处理遗留应用程序修复一些问题,并使其支持 4 英寸显示器和 iOS 7。问题是该应用程序的体系结构非常复杂,有几个类别和方法调配以在 iOS 4.3 中
我有一个应用需要一直处于纵向模式,播放视频时除外。为了在我的项目设置中为 VideoController 启用横向模式,我启用了所有受支持的方向模式。然而,这也允许我的其他 Controller 旋转
我搜索了这个问题的答案,但找不到任何解决我问题的方法。 问题来了:我有一个自定义的 UINavigationController,在创建它时,在 rootViewController 上调用了 sup
我有一个 UITabBarController 子类,它有以下代码: class TabBarController: UITabBarController { // MARK: Methods ove
当两个警报一一出现时,我的意思是一个警报出现,另一个警报出现并且应用程序崩溃。我使用 UIAlertController 来显示警报。应用程序仅在 iOS 9 设备中崩溃。 此时请帮助我。 最佳答案
在我的应用中,我有多个 View ,一些 View 需要同时支持纵向和横向,而其他 View 只需要支持纵向。因此,在项目摘要中,我选择了所有方向。 以下代码用于在 iOS 6 之前禁用给定 View
在 iOS 5 ,我的应用程序我使用该方法来改变我的方向: - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation
只是一个简单的问题。假设我已将应用程序更新到 iOS6 并更改了 iOS5 的 shouldAutoRotate 方法,如下所示: - (BOOL) shouldAutorotate { return
我知道这个问题之前在这里被问过 iOS 6 shouldAutorotate: is NOT being called .但我的情况有点不同。 最初,在应用程序启动时,我加载了一个 viewContr
我是一名优秀的程序员,十分优秀!