非全屏 UINavigationController

2024-01-06

是否可以以不使用整个窗口的方式使用 UINavigationController?

我尝试过设置它的视图框架以及将其视图添加到另一个(非全屏)视图而不是窗口,但似乎都不起作用。


您不能直接更改 UINavigationController 或其子视图的大小,因为 UINavigationController 会自动将它们调整为全屏,无论它们的框架设置为什么。到目前为止,我能够克服这个问题的唯一方法如下:

首先,像平常一样创建 UINavigationController 的实例:

UINavigationController *nc = [[UINavigationController alloc] init];
self.navController = nc;
[nc release];

然后,创建一个 UIView 实例,限制为您真正想要的大小:

UIView *navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, DESIRED_HEIGHT)];
navView.clipsToBounds = YES;
[navView addSubview:self.navController.view];   
[self.view addSubview:navView];
[navView release];

navView 的 ClipsToBounds 属性必须设置为 YES,否则 UINavigationController 及其视图仍将全屏显示。然后,将 UINavigationController 添加到该约束视图。然后可以将此 UIView 添加到 UIViewController 的视图中,如上所示。

需要注意的是,添加到 UINavigationController 的任何 UIViewController 的视图都将其内容限制在 navView 的边界,而不是添加到 UINavigationController 的子视图的框架,因此应该创建每个子视图中的内容,以便正确显示navView 的边界。

无论如何,这种技术确实有效,因为我已经创建了一个成功使用它的应用程序。我让它工作的唯一另一种方法是从头开始创建一个自定义导航控制器类,复制 UINavigationController 的功能,但没有自动调整大小(我过去也这样做过),这可以是一种痛苦。希望这可以帮助。

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

非全屏 UINavigationController 的相关文章

  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 无法禁用 CALayer>>removeFromSuperlayer 的动画

    我希望从其超级层中删除 CALayer 而无需设置动画 这里发生的事情是图层动画到一个位置 效果很好 但是当动画停止时 执行此代码 将图层返回到其开始位置 并淡出 大概然后从超级层中删除 如何阻止它动画 removeFromSuperlay
  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • 获取在 iOS UIFont 中追踪字符的路径

    假设我在 iOS 应用程序中使用了自定义字体 Foo 我已将其添加到我的项目 plist 等中 并且我能够渲染UILabels之类的就很好了 现在 如果我想找出可以 追踪 该字体中的字母 P 的点序列 我将如何获得该点序列 例如 假设我想使
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iOS后台获取时间限制崩溃

    我已经设置了背景获取 使用大纲NSScreencast 第 92 集 http nsscreencast com episodes 92 background fetch BOOL application UIApplication app
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • Xcode - 发布和分发配置中的 Malloc_Error

    仅当我在设备上选择发布或分发配置时 我才会收到此错误 在模拟器上它运行良好 请问 我错在哪里 cc1obj 4113 malloc mmap size 429379584 failed error code 12 error can t a
  • 如何将 NSMutableArray 添加到 NSMutableArray Objective-c

    我正在从 Java 切换到 Objective c 但遇到了一些困难 我已经搜索过这个问题但没有取得太大成功 我有一个存储 NSMutableArrays 的 NSMutableArray 如何向数组添加数组 您可以在数组中存储对另一个数组
  • 使用 iOS 修剪音频

    我想实现一项功能 让用户修剪他之前录制的音频文件 caf 录音部分已经可以工作了 但是我如何添加类似于 Voicememos 应用程序中的修剪功能 苹果使用的音频修剪器有API吗 任何帮助都会很棒 使用 AVFoundation 怎么样 将
  • UIAlertView 每次调用都会弹出三次,而不是一次

    我在程序的两个不同部分中从 NSAlert 中得到了奇怪的行为 行为是 出现警报 然后自发地消失 警报重新出现 然后一直保留 直到用户解除 即正常行为 警报再次出现 此行为仅在第一次调用显示警报的方法时发生 第一次之后 它的行为就正常了 以
  • 自定义 UINavigationController UINavigationBar

    基本上我想要一个定制UINavigationBar 我不希望它是 半透明 或任何东西 就像图片应用程序一样 我基本上想完全删除它 但我仍然希望能够在按下导航控制器时添加后退按钮等 并且我想要视图 例如 UITableViewControll
  • 为什么 Apple 建议以编程方式创建模态导航控制器?

    以模态方式呈现导航控制器时 以编程方式创建和配置导航控制器对象通常更简单 虽然您也可以使用 Interface Builder 来执行此操作 但通常不建议这样做 事实上 因为我的导航控制器很简单 我宁愿在IB中自定义视图 虽然我不知道确切的
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • iPhone Dev:从子控制器和 TabBar 中的另一个控制器重新加载表视图的数据

    我正在实现一个笔记管理器应用程序 它在 tabBar 中有一个 tableView 其中显示其笔记的主要信息 访问一个注释时 您可以编辑其属性 在 tabBar 的一个按钮中 您可以选择注释在 tableView 中的显示方式 我遇到的问题
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空

随机推荐

  • CMake:C 和 CXX 编译器识别未知 Win10 CMakeGUI

    所以我尝试根据 youtube 上的本教程配置一个文件 这非常简单 https www youtube com watch v gYmgbqGfv 8 https www youtube com watch v gYmgbqGfv 8 我在
  • Postgres 从 csv 文件复制 - 没有这样的文件或目录

    我正在尝试将一个 相当大的 txt 文件导入到 PostgreSQL 9 1 中的表 geonames 中 我位于服务器的 目录中 该目录中放置了一个名为 US txt 的文件 我设置了search path变量 geochat 我正在使用
  • git克隆,忽略文件

    我想克隆一个 GitHub 存储库 其中包含一个巨大的 exe 文件 为什么 我对 exe 文件的使用为零 而且它比其他所有文件的总和要大得多 有没有办法在克隆文件时忽略该文件 我的猜测是 如果我要求作者制作一个无可执行文件的分支 我会更幸
  • Python:从父文件夹导入文件

    现在我知道这个问题已经被问过很多次并且我已经查看了其他线程 到目前为止没有任何效果 从使用sys path append 只需导入foo 我有一个 python 文件希望导入一个文件 位于其父目录中 您能帮我弄清楚我的子文件如何成功导入其父
  • ARM 部署:获取 Azure Function API 密钥

    作为流分析部署解决方案的一部分 我想通过例如检索 ARM 模板中的 Azure 函数应用程序的 API 密钥listkeys 函数 有没有办法在 ARM 部署期间分别通过 ARM 模板检索此密钥 如果是 如何检索 Thanks Azure
  • 使用谷歌地图获取附近的地点

    我正在尝试使用谷歌地图来查找我当前位置的附近地点 我在 Google Developer Console 中创建了一个项目并获得了 ios APIkey 和 Server APIkey 我还启用了适用于 iOS 的 Google Place
  • C99/C11 限制类型限定符是否对没有定义的函数意味着什么?

    假设我们有一个函数声明 但我们无权访问其定义 void f int restrict p int restrict q int restrict r 由于我们不知道如何访问指针 因此我们无法知道调用是否会触发未定义的行为 即使我们传递相同的
  • OpenGL顶点缓冲区混淆

    有人愿意解释一下之间的区别吗顶点缓冲区 a 顶点数组 a 顶点缓冲区对象 and a 顶点数组对象 我什至不确定这些是否都是代表不同事物的术语 但我已经看到它们都出现在 OpenGL 规范中 我知道一个顶点缓冲区只包含顶点而没有其他内容 一
  • 如果文件扩展名为 jpg 或 png,如何使用 chrome.downloads.onDeterminingFilename 更改下载的文件名?

    我该如何使用chrome downloads onDeterminingFilename https developer chrome com extensions downloads event onDeterminingFilename
  • 进度条显示已播放的音乐量

    假设我使用mp3play播放mp3文件的模块 并使用ttk Progressbar 我想显示播放音乐的数量 持续时间 有没有代码可以实现 我还想要一个计时器 a 来显示音乐播放的持续时间 import ttk import mp3play
  • 如何在 angularjs 中创建和更新 JSON 文件?

    我只想创建一个简单的应用程序 它使用 AngularJS 创建 更新和删除 JSON 文件中的项目 我在网上查看过 只找到了使用 JavaScript 对象来编辑或删除 JSON 类型数据的示例 但我想在 AngularJS 中使用 JSO
  • scala 动态多维可变数组,如数据结构

    有没有办法在Scala中构建动态多维数组 我知道 Scala 中的数组必须按照其大小和维度进行初始化 所以我不希望这样 数据结构应该是动态的 我尝试用列表中的列表来构建它 但我在某种程度上迷失了自己 有很多不同的类型 也许我只是没有找到合适
  • Go,tcp打开文件太多调试

    这是一个简单的 Go http tcp 连接测试脚本 func main ts httptest NewServer http HandlerFunc func w http ResponseWriter r http Request fm
  • 再次:在函数内设置环境

    已经有很多关于范围 环境和功能的讨论 参见例如here https stackoverflow com questions 23234640 why do variable lookups in the body of function a
  • 分页符在 Node js 中的 html-pdf 转换器中不起作用

    I am using html pdf 2 2 0 module to convert my html in pdf I am using table with multiple rows so I want to use page bre
  • ruby 布尔运算符或 ||差异[重复]

    这个问题在这里已经有答案了 可能的重复 Ruby 之间的区别和 或 https stackoverflow com questions 2083112 ruby difference between and or 在 ruby 中 不是 o
  • 导航到某个路径后清除位置状态

    我正在使用反应路由器browserHistory导航到路径 browserHistory push pathname mycomponent state someValue value 所以这将导航到 mycomponent 一旦我到达我的
  • 向 xib 中的“主视图”添加约束

    我有一个UIView在 xib 文件中定义 我需要设置translatesAutoresizingMaskIntoConstraints NO 这意味着框架不会转换为约束 因此我需要自己设置尺寸约束 我创建了一个工作类别方法UIView N
  • Sticky 命令如何影响 Tkinter 中的 python 代码?

    from tkinter import from tkinter import ttk root Tk root rowconfigure 0 weight 1 root columnconfigure 0 weight 1 frame t
  • 非全屏 UINavigationController

    是否可以以不使用整个窗口的方式使用 UINavigationController 我尝试过设置它的视图框架以及将其视图添加到另一个 非全屏 视图而不是窗口 但似乎都不起作用 您不能直接更改 UINavigationController 或其