apple的例子是将UINavigationController作为window的子对象来加载。
但是实际应用里,首页面很可能是登陆页面等等,即首页面是一个uiview,然后跳转到另外一个uiview,再该view下才是包含了uinavigationcontroller对象。
window+
loginview+
workview
那么比如在loginview中的登陆事件成功后,需要将workview盖在loginview上。
大致上有两种代码:
1. [self.view addSubview:workview.view]; // 直接在自己view里加载workview
2. [[self.view window]addSubview:workview.view]; //在window里加载workview
但是UINavigationController有一个特性,会让自己上面有20px的空格,这也是为什么例子老是在window下做的原因,因为window是 320*480的 而我们建的view可能是320*460,再下移20px就等于下移了40px。
因此在方法1中调用之后,在顶部会出现一个20px的空行。因为UINavigationController不知道自己在一个view中。所以需要在workview的viewDidLoad方法中,加入如下语句:
[navi.view setFrame: [self.view bounds]]; //或者直接下面
[navi.view setFrame:CGRectMake(0, 0, 320, 460)];
第2种,因为直接是在window中,是需要下移20px的,所以在workview的viewDidLoad方法里不需要修改
好吧,扯一大堆,其实就是为了记个笔记:UINavigationController有一个特性,会让自己上面有20px的空格。
分享到:
相关推荐
UInavigationController笔记
- 如果控制器嵌套在`UINavigationController`中,需要重写`preferredStatusBarStyle`和`childViewControllerForStatusBarStyle`方法,以确保正确应用设置。 如果希望在整个项目中隐藏状态栏,可以在项目设置的`...
这篇学习笔记将深入探讨如何在iOS应用中实现自定义导航栏以及如何有效利用表格展示数据。 首先,自定义导航栏允许开发者根据应用程序的品牌风格或功能需求进行个性化设计。在iOS中,我们通常使用...
- 应用可能包含一个导航控制器(UINavigationController)来管理各个页面之间的导航,以及一个表格视图控制器(UITableViewController)用于显示笔记列表。 2. **数据模型**: - 定义一个笔记模型类(Note),...
### 使用导航控制器的相关知识点 #### 一、导航控制器的基本概念 导航控制器(Navigation Controller)是iOS应用程序中一种常见的视图控制器组织方式。它提供了一种简单直观的方式来展示一系列的视图控制器,并...
这个“Swift_ios_StartActivity”压缩包文件很可能是包含了一个关于如何使用`UINavigationController`的学习资源,包括代码示例、笔记或者其他教学材料。在这里,我们将深入探讨`UINavigationController`的基本概念...
记事本应用可能包含一个TextView用于输入和显示文本,一个TitleLabel显示笔记标题,以及一些导航元素如NavigationBar和TabBar。 4. **Core Data**:Apple的持久化框架,用于存储应用的数据。在这个记事本应用中,每...
8. **学习资源**: 从文件名可以看出,有一些学习资源如博客文章和教程可以帮助开发者深入理解iOS手势编程,包括张智清的“iphone的手势与触摸编程学习笔记”以及CSDN和DEVDIV上的相关博客文章。 通过掌握以上知识点...
在页面跳转过程中,有时需要将一些数据从一个页面传递到另一个页面。一种常见的方法是通过自定义的对象(如`User`)作为中间载体。在View1中,创建`User`对象并赋值,然后将其赋给View2的相应属性: ```objc // 在...
标题"标签导航源码"表明这是一个关于实现标签导航功能的代码资源,而描述中提到的《IOS 学习笔记 页面导航:标签导航》文章,则可能是对这一实现的理论解释和背景介绍。本文将深入探讨标签导航的基本概念、实现方式...
【标签】"IOS 源码" 指出这是一份与iOS平台相关的编程代码,可能涉及到UIKit框架、Core Data持久化、Auto Layout布局机制等iOS开发的关键技术。开发者可以通过研究源码来提升对这些技术的理解和实践能力。 【压缩...
10. **导航控制器(UINavigationController)**:UINavigationController管理一个导航堆栈,允许用户通过“前进”和“后退”操作在多个视图之间切换。了解如何嵌入导航控制器,以及如何在代码中实现导航功能。 11. ...
以下是一些关于iOS手势资料的关键知识点: 1. **UIGestureRecognizer**: 这是iOS SDK中的一个基础类,用于识别和处理各种触摸事件。它提供了多种子类,如UIPanGestureRecognizer(拖动)、UITapGestureRecognizer...
笔记子视图控制器 执照 中文文档 特征 支持透明的导航栏 支持导航栏背景图片 支持导航栏大标题模式 支持iOS 13暗模式 支持全屏弹出手势 就像使用UINavigationBar一样简单 要求 iOS 9.0以上 Xcode 11.0以上 ...
本章可能深入到UITableView和UICollectionView的使用,导航控制器(UINavigationController)、标签页控制器(UITabBarController)以及模态视图(UIViewController)的管理。 4. **Model-View-Controller (MVC) ...