关于ios导航控制器的知识总结

关于ios导航控制器的知识总结

添加了导航控制器后:

1.每个页面都会有一个顶部导航栏navigationbar和底部工具栏toolbar,它们是导航控制器navC的属性。且导航栏默认是不隐藏的,而底部工具栏默认是隐藏的。

2.可以通过设置 self.navigationController.toolbarHidden = NO来显示底部工具栏,工具栏中的内容可以通过viewController的toolbarItems来设置,显示的顺序和设置的NSArray中存放的顺序一致,其中每一个数据都一个UIBarButtonItem对象。

3.导航控制器的导航栏navigationbar和工具栏toolbar上的导航按钮navigationItem和toolbarItems却是当前页面视图控制器VC的属性。特别注意:下一个页面的左侧Back按钮名称是由当前页面的backBarButtonItem来设置。只能设置名称,不能设置形状。如果下个VC设置了leftBarButtonItem,则本页面设置backBarButtonItem无效,会被下个页面的左按钮覆盖掉。

4. 下一个页面的左侧Back按钮的名称是由上一个控制器backBarButtonItem来设置的。如果上一页面没有设置backBarButtonItem按钮的名称,则默认显示为Back。但是若上页面有设置navigationItem.title属性,则显示该title。如果上一页面设置的是navigationItem.titleView,则下一页面左侧仍显示默认的Back.

5.导航控制器会有一个viewControllers属性,其中的VC是以栈的形式组织的,当pushViewController或者addChildViewController或者直接添加到数组navC2.viewControllers = @[vc1,vc2,vc3]; 因为会新出现一个页面,在push,add之前需要创建好对应VC的对象。当使用popToViewController时,栈顶的VC都会被销毁(如不想被销毁,需给它一个强引用即可),返回到的那一页并不需要新创建pop到的VC的对象,因为之前使用push时,它被压入栈底,并不会被销毁。

6. 转载一篇不错的文章《UINavigationController使用详解》,大家一起学习。

时间: 2024-08-02 00:03:46

关于ios导航控制器的知识总结的相关文章

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a.在b跳转(push)到c中代码书写如下: UINavigationController *navController = [[self.navigationController retain] autorelease]; [navController popViewControllerAnimated:NO]; View

导航控制器的知识总结

1.导航控制器的功能和介绍 [注]导航控制器,是UIKit框架提供的一个容器视图控制器,用于切换拥有明确层次关系的视图.即由一级视图切换到二级视图,而不是平级视图间的切换. [注]导航中视图控制器的层次结构,称为栈结构. 2.如何使用导航控制器实现界面之间的跳转 <1>显示一个界面,显示导航条 //使用导航控制器 //1.创建导航控制器,rvc放到导航控制器中 //2.导航控制器作为window根视图控制器 //导航条大小: 320X44 RootViewController *rvc = [

iOS 导航控制器返回栈中的某一控制器

#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end #import "AppDelegate.h" #import "FirstViewController.h" @interface AppDelegate () @en

iOS导航控制器的注意事项

1.导航控制器永远显示的是栈顶控制器的view 2.导航控制器中做界面之间的跳转必须取到导航控制器 3.调用pop方法并不会马上销毁当前控制器 4.popToViewController使用注意点:传入进去的控制器必须是导航控制器栈里面的控制器 5.导航条的内容由栈顶控制器决定,一个导航控制器只有一个导航条,因此只能由一个控制器决定,谁先显示在最外面,谁就是栈顶控制器. 6.在iOS7之后,默认会把导航条上的按钮的图片渲染成蓝色. 7.导航条上的子控件位置不需要我们管理,只需要管理尺寸 8.UI

ios 导航控制器

1.在AppDelegate.m中 引用 #import "RootViewController.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. #pragma mark - 配置win

iOS导航控制器常用函数与navigationBar常用属性

导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)viewDidAppear:(BOOL)animated 当视图控制器的View将要消失时触发 - (void)viewWillDisappear:(BOOL)animated 当视图控制器的View已经消失时触发 - (void)viewDidDisappear:(BOOL)animated 当由前一

关于iOS导航控制器隐藏和显示会出现返回键失效,导航栏标题动画异常

最近做的demo  bug出现了,我觉得这个bug出现得很经典所以贴出来给大家看看, bug演示就是:点击返回键失效出现如下gif图演示的内容 为啥会出现如此奇葩的bug,系统的返回键居然失效了,尴尬症又犯了,愣是点了很久也不知所措 bug出现的源头:从不隐藏导航栏进行手势返回的时候,手势返回一半松手,回到不隐藏导航栏的页面,在push其他页面,就会出现返回键失效的问题 出现bug的重要步骤:手势返回一半又松手 进行页面隐藏导航栏的代码如下 //显示导航栏 [self.navigationCon

iOS导航控制器和标签栏控制器的结合

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">- (void)initTabBar { // 初始化主页 HomePageViewController *homePage = [[HomePageViewController alloc]init]; UINavigati

猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 一:加入导航控制器 上一篇博客完毕了对底部的TabBar的设置,这一章我们完毕自己定义导航控制器(NYNavigationController). 为啥要做自己定义呢.由于为了更好地封装代码,而且系统的UINavigationController不能满足我们的需求了,所以得自己定义. 首先,我们在NYTabBarViewCon