将两个导航控制器添加到一个选项卡栏项目

2023-12-14

我希望将 2 个导航控制器附加到一个选项卡栏项目。

基本上,这个想法是在单个选项卡项上有 2 个视图,并且应该有一个导航栏来推动和弹出屏幕。 (与 iPad 中的设置应用程序相同)。

已编辑======

看起来左侧有一个带有自己的导航控制器的视图,而右侧有另一个带有自己的导航控制器(或其他一些 UI)的视图来实现 Push Pop 功能。

我知道如何将 1 个导航控制器附加到一个选项卡栏项目。

针对 ModalView 问题进行了编辑:- 通过实施 conmulligan 代码,一切都可以正常工作。但是,如果我尝试在 lansdscape 模式下显示某些 ModalViewController,并且当我尝试关闭此 ModalView 时,FirstViewController 导航栏将变为纵向(及其视图),而 SecondViewController 导航栏仍保持横向(应该是)。这种情况仅发生在设备中,而不是模拟器中。

下面是我展示 ModalViewController 的代码。

ModalTableViewController *modalTableViewController = [[ModalTableViewController alloc]initWithNibName:@"ModalTableViewController" bundle:[NSBundle mainBundle]]; 
UINavigationController *localNavigationViewController = [[UINavigationController alloc] initWithRootViewController:modalTableViewController];
localNavigationViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:localNavigationViewController animated:YES];
[modalTableViewController release];
[localNavigationViewController release];

为了关闭 ModalViewCntroller 我这样做:-

[self dismissModalViewControllerAnimated:YES]; 

Waiting for your replies.enter image description here


一种方法是创建一个UIViewController包含两个导航控制器的子类并将其添加到UITabBarController。以下是您在中创建和布局导航控制器的方法UIViewController's -viewDidLoad method:

FirstViewController *firstViewController = [[FirstViewController alloc] init];
UINavigationController *firstNavigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
[firstViewController release];

SecondViewController *secondViewController = [[SecondViewController alloc] init];
UINavigationController *secondNavigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController];
[secondViewController release];

firstNavigationController.view.frame = CGRectMake(0.f, 0.f, 320.f, self.view.frame.size.height);
firstNavigationController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;

secondNavigationController.view.frame = CGRectMake(321.f, 0.f, self.view.frame.size.width - 321.f, self.view.frame.size.height);
secondNavigationController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth |
                                                   UIViewAutoresizingFlexibleRightMargin;

[self.view addSubview:firstNavigationController.view];
[self.view addSubview:secondNavigationController.view];

这或多或少是如何UISplitViewController在幕后工作。

Edit:您可能需要添加以下代码以确保其布局正确:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated];
    [firstNavigationController viewWillAppear:animated];
    [secondNavigationController viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated];
    [firstNavigationController viewWillDisappear:animated];
    [secondNavigationController viewWillDisappear:animated];
}

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated];
    [firstNavigationController viewDidAppear:animated];
    [secondNavigationController viewDidAppear:animated];
}

- (void)viewDidDisappear:(BOOL)animated { 
    [super viewDidDisappear:animated];
    [firstNavigationController viewDidDisappear:animated];
    [secondNavigationController viewDidDisappear:animated];
}

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

将两个导航控制器添加到一个选项卡栏项目 的相关文章

  • 在哪里可以找到“get-pip.py”下载链接?

    作为教程的一部分 我尝试下载 pip py 但链接现在不同了 我找不到可以下载 pip 的按钮 这是我得到的链接 https pip pypa io en stable installing cmdoption no setuptools
  • 导出 iPhone 地址簿数据库的可能方法

    我想将 Phone s Address Book sqlite db 导出到我的 iPhone 应用程序中 我在网上搜索过 但一切似乎都在 ABAddressBook 上迭代 但我想知道是否可以以编程方式将 Phone s Address
  • 使用 iOS 分布式应用程序时 Google Cloud Messaging 显示“notRegistered”

    我在 iOS 应用程序上实现了 GCM 服务 我使用 PHP 在服务器上发送 GCM 当应用程序由开发配置文件签名时 它可以完美运行 也就是说 当应用程序使用 GCM 配置注册自身时 它始终返回一个正常运行的设备令牌 我可以使用令牌向设备发
  • iPhone UITableView 分页结果

    对从服务器拉取的大量结果进行分页的最佳方法是什么 就服务器而言 我可以抵消和限制结果 因此我一次只能提取 25 个结果 但是允许用户查看更多结果而不需要像应用商店一样不断向下滚动不断增长的列表的最佳方式是什么应用程序 谢谢 豪伊 要在列表底
  • 如何在iPhone应用程序中的类结构中实现主键和外键表数据[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何连接sqlite数据库中的两个表数据 if sqlite3 open dbPath UTF8String database SQL
  • UIButton 图像未更改/更新

    首先 我对 Objective C 还很陌生 并且仍在尝试尽可能多地学习 所以请耐心等待 现在我有一个以编程方式创建的 UIButton 按下按钮时 将显示一个 UIActionSheet 其中包含 相机 选择照片 或 取消 选项 然后 按
  • NSHTTPCookieStorage 是否跨应用程序持续存在?

    所以我只是好奇 NSHTTPCookieStorage 是否跨应用程序持久存在 或者仅在当前应用程序本地 我希望在另一个应用程序中收集的一些 cookie 可以在搜索应用程序中访问 是这样的吗 谢谢 PS 这是在 iPhone 或 iPad
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • 如何知道用户何时更改设置包

    我让用户在 iPhone 的设置区域中更改他们的设置 在下一次网络同步期间 我想将用户更改发送到服务器 但前提是做出改变 但是我如何知道用户何时在设置区域中进行了更改 如果可以的话 我想避免选择总是发送信息 无论是否更改 或者首先从服务器获
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 如何在 Core Data 中存储图像?

    只是猜测 我创建一个属性并将其类型设置为 二进制 但最终我该如何使用它呢 我猜幕后有一个 NSData 那么该属性实际上采用 NSData 吗 这个问题已经被问过很多次了 答案有点复杂 当涉及二进制数据时 您应该根据要使用的数据的预期大小来
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何禁用 iPhone 邮件应用程序中的电话号码链接?

    我的公司正在发送数字电子邮件收据 但遇到了 iPhone Mail 检测数字数据并将其自动链接为电话号码的问题 我已经看到元标记应该可以解决 iPhone 上的 Mobil Safari 中的问题 但该技巧似乎不适用于 Mail 有谁知道如
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 在 iPhone 中缝合图片

    我想并排缝合2张png 在Cocoa中 我会使用 NSImage initWithSize 然后只是drawInRect 但是 UIImage 没有 initWithSize 类 我现在该怎么做 Use UIGraphicsBeginIma
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在发生更改事件时将货币格式重新应用到 UITextField

    我正在使用一个包含本地化货币值的 UITextField 我看过很多关于如何使用此功能的帖子 但我的问题是 如何在每次按键后将货币格式重新应用到 UITextField 我知道我可以通过以下方式设置和使用货币格式化程序 NSNumberFo
  • NSArrayController 无需将大型数据集加载到数组中

    我想使用 NSArrayController 向 NSTableView 提供数据 我面临的问题是我不想将所有数据预先加载到数组中 然后使用数组控制器setContent 方法 我的数据模型是一个管理数百万条记录的大型现有代码库 它包含有效

随机推荐

  • 对 ArrayList 进行分页

    我正在尝试为中保存的值创建一个简单的分页例程ArrayList 基本上我想做的是渲染中的前五个元素ArrayList一开始去 然后当用户点击Next increment by another 5 and Previous decrease
  • 隐藏选择控件内的文本

    如何隐藏写在里面的文本部分option 我尝试过以下方法
  • MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)

    我在脚本中使用 Microsoft Edge Webdriver Chromium 和 Python3 webdriver配置如下 driveroptions Options driveroptions add argument inpri
  • 如何重置 CSS 网格中项目的宽度?

    我们有一个使用 Flexbox 完成的平铺项目的遗留部分 物品的容器是ul ul icon grid display flex flex wrap wrap list style none padding left 0 然后里面的物品是li
  • Laravel 复选框过滤器 ajax

    我需要实现一个基于ajax的空缺复选框过滤器 因此 我在页面上有一些类别 当用户标记某些复选框时 结果块仅显示所选类别中的空缺 如果没有选中复选框 页面将显示所有类别中的所有职位空缺 现在我有了当前的变体 但它不适用于复选框值数组 并且每次
  • 如何静态断言函数末尾无法到达

    我有一个相当复杂的match语句 带有嵌套ifs 等 位于函数末尾 每个分支都应该显式地从函数返回 或者调用一些 gt 函数 例如process exit 为了与其他程序员进行通信 并保护自己免受自己的伤害 我想告诉编译器断言此后的任何内容
  • Cassandra - 重叠数据范围

    我在 Cassandra 中有以下 任务 表 Task ID UUID 分区键 Starts On TIMESTAMP 聚类列 Ends On TIMESTAMP 聚类列 我想运行 CQL 查询来获取给定日期范围内的重叠任务 例如 如果我传
  • 在 Powershell 中,如何将消息框带到前台,并将焦点更改为消息框中的按钮

    在我的脚本中 当我打开消息框时 消息框始终在后台打开 位于运行的所有其他应用程序和窗口之后 我正在尝试做两件事 如果它们应该是两个问题 我很抱歉 但我认为密切相关 1 我希望消息框在需要呈现时显示在所有应用程序的前面 2 我想要将焦点更改为
  • 特征名称后面的特征是什么意思?

    我在阅读 Rust 时遇到了这个特征定义 trait Enchanter std fmt Debug 由此我了解到该特征的名称是Enchanter 但我不明白什么std Format Debug部分暗示 因为它也是一种特质 我认为 这是宣告
  • Jsoup div[class=] 语法有效,而 div.class 语法无效 - 为什么?

    对于以下 HTML 片段 div class class one class two class three classfour classfive classsix some inner content div 以下 Jsoup 选择器w
  • 为什么10000000*1000在java中给出141006540​​8? [复制]

    这个问题在这里已经有答案了 class a public static void main String arg int a 10000000 int b 1000 int c a b System out println c 输出是 14
  • windows:获取监视器的数量,包括禁用的监视器

    EnumDisplayMonitors列出当前激活的所有监视器 但是 它似乎不会返回禁用的 即未选中 将我的桌面扩展到此显示器 的那些 我如何获得包括残疾人在内的计数 好的 首先您必须创建一个设备上下文 http msdn microsof
  • Windows 任务计划程序的问题

    我在使用 Windows 任务管理器时遇到两个问题 一 我有一个 Python 脚本 可以在运行结束时通过 gmail 发送电子邮件通知 当我运行脚本本身时 这工作正常 但是当我通过 Windows 任务计划程序运行脚本时 脚本运行良好 但
  • Struts 2 jQuery 网格从 JSON 字符串加载数据

    我发现我们可以加载jqGird与 JSON 字符串 请参阅将 JSON 数据映射到 jqGrid 是否可以使用此功能sjg grid tag 我查看标签属性 只发现可以从 URL 加载数据 该 URL 将调用 Struts 操作 并且该操作
  • 在 Android 中以编程方式切换到开发者模式

    我想创建一个工具 允许在 Android 版本低于 4 2 的 Android 设备上切换到开发人员模式 我想创建一个 apk 来激活和停用开发者模式 这可能吗 如何 开发人员 模式是一种系统设置 因此只能从系统应用程序进行修改 即使用制造
  • 为什么当我转换为“long”时会调用“operator bool()”?

    我有以下课程 class MyClass public MyClass char what controlled what MyClass delete controlled operator char const return contr
  • 如何在渲染时为 React 组件设置动画?

    我正在尝试为包含从其他地方获取的数据的 React 组件设置动画 将其放置在ReactCSSTransitionGroup工作得很好 也就是说 直到我改变了组件的render 返回方法false直到数据被获取 到防止在没有数据的情况下渲染它
  • 如何从 C# 显示文件的“属性”对话框?

    如何打开文件的特性通过按钮进行对话框 private void button Click object sender EventArgs e string path C Users test Documents tes text how t
  • Java 9、10、11、12...等中的 javax.smartcardio

    从 Java 9 开始 javax smartcardio 库发生了什么 有替代方法或某种方式在 JAR 中获取它吗 在网上搜索了几个小时后 感谢上面的答案 据我了解 Java 9 及更高版本是模块化的 这是几年前计划的语言改进 此外 在新
  • 将两个导航控制器添加到一个选项卡栏项目

    我希望将 2 个导航控制器附加到一个选项卡栏项目 基本上 这个想法是在单个选项卡项上有 2 个视图 并且应该有一个导航栏来推动和弹出屏幕 与 iPad 中的设置应用程序相同 已编辑 看起来左侧有一个带有自己的导航控制器的视图 而右侧有另一个