- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想做的是最简单的概念。但是,我只是没有得到任何想要的结果。
我的应用是一个标准的标签栏应用,每个标签中的所有 View Controller 都只支持纵向,这正是我想要的。
但是,在应用程序的一个部分中,我显示了一个模态视图 Controller ,它显然覆盖了选项卡栏 Controller 。这是一个文本输入屏幕,我非常希望这个 View 能够支持横向和纵向。然后,一旦用户取消了该模态视图 Controller ,标签栏 Controller 将再次显示,所有内容都是纵向的。
我尝试了很多方法,但没有任何效果。如果我告诉应用程序支持两个方向,那么旋转会在模态上正确发生,但也会在应用程序的其余部分发生,这是我不想要的。
我已经尝试实现所有新的 shouldAutorotate 和 supportInterfaceOrientations 方法,但似乎没有任何效果。
我必须做的最接近工作的尝试是,我在我的应用委托(delegate)中创建了一个 UITabBarController 类别,以转发 shouldAutorotate 和 supportedInterfaceOrientations。这似乎最初有效,但出于某种原因,每当取消我的模态 vc 时,我的应用程序的标签栏部分总是在状态栏后面向上移动 20 像素?我不知道这是怎么回事。
我创建了一个测试应用程序,其中没有 UITabBarController,我能够毫无问题地编写我想要的行为,而且它运行良好。因此,很明显,与 Tab Bar Controller 相关的某些事情使这个问题变得棘手。
请告诉我解决这个简单概念的诀窍是什么。
谢谢!
最佳答案
我能够通过为 UITabBarController 和 UINavigationController 创建几个类别来解决这个问题。这是我使用的代码:
@implementation UITabBarController (rotations)
- (BOOL)shouldAutorotate
{
return [self.selectedViewController shouldAutorotate];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:toInterfaceOrientation];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [self.selectedViewController supportedInterfaceOrientations];
}
@end
@implementation UINavigationController (navrotations)
- (BOOL)shouldAutorotate {
return [self.topViewController shouldAutorotate];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return [self.topViewController shouldAutorotateToInterfaceOrientation:toInterfaceOrientation];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
@end
当然,我显示的每个 View Controller 都需要响应 shouldAutorotate 和 supportedInterfaceOrientations 方法。
关于iPhone iOS 6 UITabBarController 仅纵向,如何让模态视图 Controller 支持横向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765544/
阅读目录 1、视图介绍 2、创建视图 3、查询视图 4、修改视图 5、删除视图 6、检查选项
基于函数的视图你已经get了,基于类的视图get了吗?CBV本质不知道?点进来看源码分析~ Django 视图之FBV 与 CBV FBV(function base views) 基于函数的视图,就
SQLite 视图(View) 视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。 视图
视图 什么是视图?视图的作用是什么? 视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。 通过视图,可以展现基表(用来创建视图
代码如下: CREATE OR REPLACE VIEW BLOG_V_ADMIN (ID,NICKNAME,SEX,EMAIL,
创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例:
加密测试的存储过程 ? 1
简介数据库快照 数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照
一 ,mysql事务 MYSQL中只有INNODB类型的数据表才能支持事务处理。 启动事务有两种方法 (1) 用begin,rollback,commit来实现 复制代码代码如
前言 在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用。上一篇文章,我们讲到了它的安装,今天我们就来
1、视图 视图:VIEW,虚表,保存有实表的查询结果,实际数据不保存在磁盘 物化视图:实际数据在磁盘中有保存,加快访问,MySQL不支持物化视图 基表:视图依赖的表 视图中的数据事实上
事项开启和使用 ? 1
代码如下: create PROCEDURE sp_decrypt(@objectName varchar(50)) AS begin begin tran&
前言 在之前 《Oracle打怪升级之路一》中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图、序列、同义词、索引等,以及PL/SQL编
我是一名优秀的程序员,十分优秀!