带有导航控制器方向的标签栏控制器 ios 6

2023-12-26

我目前正在开发一个项目,其中我们有一个带有 4 个选项卡的选项卡栏控制器,每个选项卡都有一个导航控制器。每个导航控制器上都有多个视图控制器。

我在这里和其他地方读了很多帖子,我们目前做了以下工作:

子类化 UITabbarcontroller

- (BOOL)shouldAutorotate
{

    return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotate];

}

- (NSUInteger) supportedInterfaceOrientations
{
    return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController]supportedInterfaceOrientations];
}

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation];
}

如果我们在每个视图控制器中指定以下内容,则效果很好:

- (NSUInteger) supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return YES;
}

这将按预期将其锁定为纵向。

但现在真正的问题出现了! 如果我们在其中一个选项卡的视图控制器中指定它应该旋转到横向,那么它工作正常,但是当我们更改选项卡时,它仍然处于横向,这不是我们想要的!

总而言之,是否有人找到了一种解决方案,可以将几乎所有视图锁定到给定方向(除了一个),并且可以更改选项卡所在的方向(此处为纵向)?

我也读过这篇文章iOS 6 UITabBarController 支持当前 UINavigationcontroller 的方向 https://stackoverflow.com/questions/12504464/ios-6-uitabbarcontroller-supported-orientation-with-current-uinavigation-control,但正如一条评论也提到“这几乎对我有用。问题是,如果我已经处于横向状态,当我将选项卡切换到纵向时,仅查看它仍然处于横向状态。旋转纵向可以修复它,并且不会旋转回去横向,但我仍然需要它在第一次加载时处于纵向”,这在这里几乎是相同的..


我自己也遇到过这个问题,我找到了一个解决方案,虽然不太漂亮,但很有效。

在您的 TabbarController 子类中实现此 tabbarcontroller 委托函数(记住设置委托):

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    int selected = self.selectedIndex;
    UIViewController *con = [[UIViewController alloc] initWithNibName:@"XIBName" bundle:nil];
    [[self.viewControllers objectAtIndex:selected] pushViewController:con animated:NO];
    [[self.viewControllers objectAtIndex:selected]popViewControllerAnimated:NO];
    [[self.viewControllers objectAtIndex:selected] setDelegate:nil];
}

选项卡导航控制器中的 uinavigationcontroller 上的推送和弹出将使 tabbarcontroller 再次触发其方向功能,如果您正确实现了方向代码,它将更改为您想要的方向。

我希望这有帮助,如果我需要详细解释任何内容,请随时发表评论。

此致 莫滕

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有导航控制器方向的标签栏控制器 ios 6 的相关文章

  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • 编码时捕获 NS_AVAILABLE_IOS

    我知道如何更改支持的最低操作系统IPHONEOS DEPLOYMENT TARGET 我目前正在 Xcode 4 5 下进行开发并使用 iOS 6 0 SDK 我想做的是找到一种方法 每当我使用标记的代码时在编译中抛出警告 NS AVAIL
  • Objective-C 中发送给对象的消息可以被监听或者打印出来吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 中拦截方法调用 https stackoverflow com questions 1618474 intercept method call in objective c 如
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • 是否可以跨 2 个不同的 iOS 应用程序访问数据?

    假设我在 App1 中存储了一些 ID 数据 并希望在同一设备上的 App2 中访问它 平台上可以这样吗 如果没有的话有什么解决方法吗 您可以使用iOS 钥匙扣 http developer apple com library ios do
  • 更改 NSMutableAttributedString 中链接的颜色

    我有以下代码 但我的链接始终是蓝色的 我如何改变它们的颜色 string addAttribute NSLinkAttributeName value tag range NSMakeRange position length string
  • CAShapeLayer 上的渐变颜色效果

    我正在尝试在 CAShapeLayer 上应用渐变颜色 为此我编写代码 void addCircle Drawing code UIBezierPath aPath UIBezierPath bezierPathWithArcCenter
  • 如何在 Swift 中“生成”闭包类型别名?

    为了使我的代码更易于阅读 我在 Swift 中对各种类型的闭包使用类型别名 我有以下基本的闭包集 public typealias FailureClosure error NSError gt Void public typealias
  • 如何在气隙 Mac 上安装新的 Apple 全球开发者关系中级证书?

    您可能知道也可能不知道 现在使用新的中间证书生成新的签名证书 你可以在这里读到它 https developer apple com support wwdr intermediate certificate https developer
  • 如何在ios开发中从mp3文件中提取元数据

    我正在开发一个带有云存储的 ios 音乐播放器 我需要提取音乐信息 如标题 艺术家 艺术作品 我有一个名为 playit 的操作 可以播放和暂停 mp3 文件 它还应该使用与 mp3 文件关联的元数据来填充一些 UILables 和 UII
  • 为什么我需要 2 个或更多核心数据模型?

    我很想知道谁使用多个核心数据模型以及为什么 有什么好处 我正在开发一个应用程序 我认为我可以从多个模型中受益 但我不确定其他好处 我即将推出的应用程序将适用于 iPad 和 iPhone 的另一个版本 iPad 有 3 个主要内容 iPho
  • 如何在javascript中计算日出和日落?

    我正在使用appcelerator titan开发一个IOS应用程序 我想让我的应用程序在日出和日落时向用户发送本地通知 解决这个问题的一个好工具是使用 YQL 的雅虎天气 但是 雅虎天气仅供非商业用途 我正在尝试找到一个javascrip
  • 核心数据executeFetchRequest消耗大量内存

    我正在核心数据数据库中插入 cca 100 000 条记录 数据库包含 3 个实体 球员 俱乐部 球员俱乐部 实体之间存在关系 玩家 gt 玩家俱乐部俱乐部 在 PlayerClub 中插入时 我注意到插入大约 50 000 条记录后会消耗
  • 在 XCode 中本地化 HTML 文件

    我有一个本地化的 iOS 应用程序 我希望在其中包含一些本地化的 HTML 文件 我不知道该怎么做 目前 我的文件夹结构如下所示 myapp en lrproj Localizable strings fr lrproj Localizab
  • 从应用程序打开/关闭 iPhone 的 Wifi

    我需要打开或关闭 iPhone 中的 wifi 有什么方法可以做到吗 还是被禁止了 私有框架 所有使用公共 SDK 编写的应用程序都经过沙箱处理 他们只能访问苹果认为可以在该沙箱中使用的属性和数据 恐怕 Wi fi 不在列表中 请看一下这个
  • 如何在复杂的层次结构中上下同步 CALayer 和 UIView 动画

    See 如何在整个层次结构中管理 CALayer 动画 https stackoverflow com questions 26917908 how to manage calayer animations throughout a hie
  • 在 Swift 中计算两个 CLLocation 点之间的方位角 [重复]

    这个问题在这里已经有答案了 我正在尝试计算仅 swift 代码中两个 CLLocation 点之间的方位 我遇到了一些困难 并假设这是一个非常简单的函数 堆栈溢出似乎没有列出任何内容 func d2r degrees Double gt D
  • Textview 中心文本对齐 IOS 7

    void observeValueForKeyPath NSString keyPath ofObject id object change NSDictionary change context void context NSLog He
  • 如何从 App Store Connect 中删除自动创建的 macOS 应用程序

    I have an iOS app Recently macOS app automatically appeared in App Store Connect 我不打算在 macOS 上发布 iOS 应用程序 我怎样才能摆脱它 我打开了

随机推荐

  • 动态端口和 AWS 应用程序负载均衡器和 ECS

    ELB 后面的 Docker 容器获取自动注册到 ELB 的动态端口 以便它们可以将流量重定向到它们 为了使 ELB 可以访问您的 Web 服务器 您必须打开来自安全组内的所有这些端口 1024 65535 有没有办法不必向一系列端口开放安
  • fpdf - 返回上一页

    我正在使用 fpdf 生成 pdf 发票 有些发票包含很多项目 详细信息需要进入第二页 但是 我需要在第一页上显示总数和其他详细信息 现在 如果我可以添加这样的新页面 pdf gt AddPage 但是 这会将所有内容放入第二页 无论此声明
  • 如何保护应用程序池免受会话序列化异常的影响?

    我们正在使用进程外会话提供程序 ScaleOut 对于 ASP NET 应用程序 我们注意到when未正确设置反序列化的对象会无意中进入会话最终导致整个进程终止 重现和处理这个场景是更有趣的地方 终止进程的异常是在会话状态中的任何 StaO
  • ruby Enumerable#first 与 #take

    ruby 枚举 数组有什么区别first n and take n 我依稀记得take与惰性评估有关 但我不知道如何使用它来做到这一点 并且在谷歌搜索或文档中找不到任何有用的东西 take 是一个很难通过谷歌搜索的方法名称 first n
  • tf.gradients 如何管理复杂的函数?

    我正在研究复值神经网络 对于复值神经网络 通常使用 Wirtinger 微积分 那么导数的定义是 考虑到由于刘维尔定理 函数是非全纯的 如果你看广濑彰的书 复值神经网络 进展与应用 第 4 章方程 4 9 定义 当然 偏导数也是使用维廷格微
  • WooCommerce - 为某些特定用户角色启用“零税率”税级

    在 wy WooCommerce 网站中 我将销售给经销商 AND 经销商 问题是经销商免税 因此我需要一个自定义函数来为某些客户角色启用零税率 如果 WooCommerce 自己做到这一点 那将是最佳选择 但事实并非如此 所以我的问题是
  • 如何获取大页面大小的值?

    我希望直接从我的 C 代码中获取大页面大小的值 而无需运行 bash 命令 从 bash 我可以做到这一点 grep pse proc cpuinfo gt dev null echo 2M huge page size are suppo
  • 有谷歌云存储模拟器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 出于测试目的 我想模拟 Cloud Storage 因为它会减慢测试速度 有谷歌云存储模拟器吗 谷歌有
  • 如何将视图绑定与包含的视图一起使用?

    View Binding 在 v3 6 中发布 Docs https developer android com topic libraries view binding https developer android com topic
  • QWidget / X11:防止通过鼠标单击激活/聚焦窗口

    我想用 Qt QML 开发一个系统范围的屏幕键盘 通过 xlib 注入按键事件效果很好 我现在的问题 如果单击键盘按钮 具有所选输入字段的窗口将失去焦点 因此 按键事件将不会传递到先前选择的输入字段 那么有人知道如何防止 QWidget 被
  • 待办事项列表项文本与以下列表项的文本重叠

    我使用 jQuery 和 Bootstrap 创建了一个待办事项列表 如果您在列表容器中输入的文本长度超过单行 则第一行中不适合的内容将与下一行中的现有列表项文本重叠 这是我的 CSSul and li元素 视图CodePen https
  • 如何处理要求使用 Ansible 任务输入的命令?

    我正在学习 Ansible 我想知道如何编写一个任务来处理以下命令
  • readdir() 32/64 兼容性问题

    我正在尝试让一些旧的遗留代码在新的 64 位系统上运行 但目前陷入困境 下面是一个小 C 文件 我用它来测试当前正在中断的实际程序中存在的功能 define POSIX SOURCE include
  • Java 8 流和映射值得吗?

    感觉 java 8 流和映射函数是如此冗长 它们并不是真正的改进 例如 我编写了一些使用集合生成另一个经过修改的集合的代码 private List
  • 使用 GitFlow 保护 Github 分支

    我有一个存储库 其中的开发分支受到保护 并且我正在使用 GitFlow 分支模型 有两个分支 开发 包含当前正在开发的功能 和主控 最新部署的生产代码 我的开发分支阻止通过 GitHub 的受保护分支直接进行提交 当您使用 GitFlow
  • Unix系统文件表

    我对 Unix 系统文件表感到困惑 当两个或多个进程打开一个文件进行读取时 系统文件表是为每个进程创建单独的条目还是单个条目 如果为打开同一文件的多个进程创建单个条目 它们的文件偏移量也会相同吗 If process 1 opens fil
  • 让打字稿知道 webpack 的 `require.context` 中的所有键

    一个相对的问题是https stackoverflow com a 53015011 2326199 https stackoverflow com a 53015011 2326199 当所有键都被硬编码时 jcalz 的答案非常有效 但
  • 关闭 Quartz 调度程序

    我的网络应用程序中有 Quartz 调度程序和 Guice 我按照代码发现here http www codesmell org blog 2009 01 quartz fits 一切正常 但我不知道如何关闭调度程序 我的上下文侦听器如下所
  • Ruby on Rails —— f.select 中的多重选择

    我的表单中有以下选择框 Related Type nbsp
  • 带有导航控制器方向的标签栏控制器 ios 6

    我目前正在开发一个项目 其中我们有一个带有 4 个选项卡的选项卡栏控制器 每个选项卡都有一个导航控制器 每个导航控制器上都有多个视图控制器 我在这里和其他地方读了很多帖子 我们目前做了以下工作 子类化 UITabbarcontroller