1,UINavigationController简介
导航控制器,ios常用
使用堆栈存储。根视图控制器在堆栈最底层。
[self.navigationController pushViewController:viewController animated:YES]; //入栈 进入viewController视图控制器 [self.navigationController popViewControllerAnimated:YES]; //出栈,返回上一个视图控制器 [self.navigationController popToViewController:UIViewController animated:YES]; //返回到指定的试图控制器 [self.navigationController popToRootViewControllerAnimated:YES]; //返回根控制器
2,UINavigationController的结构组成
UINavigationController由Navigation bar ,Navigation View ,Navigation toobar等组成;
3,UINavigationController的创建
UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor groupTableViewBackgroundColor]; ViewController *rootVC = [[ViewController alloc] init]; UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController: rootVC]; [self.window setRootViewController: navigation]; [self.window makeKeyAndVisible]; return YES; }
4,UINavigationBar
(1)默认NavigationBar
navigationBar--导航条,iOS7以后默认是透明的,iOS7以前默认是不透明的。
navigationBar在透明情况下,与contentView会重合一部分区域
navigationBar在不透明情况,ContentView跟在navigationBar下面
navigationBar竖屏下默认高度44,横屏下默认高度32
(2)自定义NavigationBar
[self.navigationController.navigationBar setTranslucent: NO]; //显示出NavigationBar self.navigationController.navigationBar.backgroundColor = [UIColor redColor]; // 设置导航条的颜色 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"tupianName"] forBarMetrics:UIBarMetricsCompact]; //导航条加背景图片
(3)自定义左侧按钮
- (void)viewDidLoad { [super viewDidLoad]; // 自定义导航栏左侧按钮 UIButton * leftBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; leftBtn.frame = CGRectMake(0, 10, 93, 30); leftBtn.backgroundColor = [UIColor orangeColor]; [leftBtn addTarget:self action:@selector(onTap) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem * leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftBtn]; self.navigationItem.leftBarButtonItem = leftItem; }
(4)自定义右侧按钮
与左侧按钮类似,区别在于:
self.navigationItem.rightBarButtonItem = rightItem;
(5)自定义中间视图
UIView * centerView = [[UIView alloc] initWithFrame:CGRectMake(0, 10, 120, 30)]; centerView.backgroundColor = [UIColor greenColor]; self.navigationItem.titleView = centerView;
5,UINavigationToolbar
(1)显示Toolbar
[self.navigationController setToolbarHidden:NO animated:YES] ;
(2)在ToolBar上添加UIBarButtonItem
UIBarButtonItem *camera=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(ClickToolBarButton)]; [camera setWidth:80]; UIBarButtonItem *refresh=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(ClickToolBarButton)]; [refresh setWidth:80]; UIBarButtonItem *reply=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(ClickToolBarButton)]; [reply setWidth:80]; UIBarButtonItem *compose=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(ClickToolBarButton)]; [compose setWidth:80]; UIBarButtonItem *splitspace=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; [self setToolbarItems:[NSArray arrayWithObjects:splitspace,camera,splitspace,refresh,splitspace,reply,splitspace,compose,splitspace, nil nil]];
相关推荐
本篇将深入讲解`UINavigationController`的页面切换机制以及如何结合`UISegmentedControl`进行有效使用。我们将通过实例分析和代码展示来探讨这些知识点。 首先,`UINavigationController`的核心功能是通过其`...
在iOS开发中,`UINavigationController` 是一个至关重要的组件,它负责管理一系列的`UIViewController`实例,并通过一个导航栏提供用户界面导航。`UINavigationController` 的主要作用是展示一个堆栈式的视图控制器...
UITabBarController和UINavigationController的整合使用DEMO,详情见:http://blog.csdn.net/hwe_xc/article/details/50588500
下面将详细讲解`UINavigationController`的使用以及如何进行页面间跳转。 首先,理解`UINavigationController`的基本概念。它是一个容器视图控制器,可以包含一个或多个子视图控制器。默认情况下,`...
在这个名为 "TabBarAndNavigation" 的示例项目中,开发者可能已经创建了一个实际运行的 Demo,展示了如何在 `UITabBarController` 和 `UINavigationController` 结合使用的场景下,根据需求动态隐藏和显示 `tabBar`...
我们写iOS项目的时候,基本都是一个UINavigationController套一个UITabBarController的形式,就是上面一个导航栏,下面几个按钮的工具条的形式。我写了几个应用,发现如果每次都重新写的话完全就是浪费精力和时间,...
在这个"UINavigationController demo"中,我们将探讨如何简单地使用`UINavigationController`以及如何在其上添加自定义导航按钮,包括图片按钮和switch按钮。 首先,要创建一个`UINavigationController`实例,通常...
上传的demo关于UINavigationController中back按钮的重写方法, UINavigationController的back按妞本身是没有监听方法的,但是我们通过添加类目可以使back按钮具有监听的作用.让我们能在UINavigationController触发返回...
本示例代码“UINavigationController Demo”将深入讲解如何在iOS应用中有效地使用`UINavigationController`,以及它与导航栏(`UINavigationBar`)的交互。 首先,`UINavigationController`是`UIViewController`的...
当`UITabBarController`与`UINavigationController`结合使用时,常常会在每个`TabBarItem`下嵌套一个`UINavigationController`,这样每个标签页都可以拥有自己的导航结构。例如,你可以在每个`TabBarItem`下面设置一...
在iOS开发中,UINavigationController是苹果提供的一种容器类视图控制器,它负责管理一个堆栈式的视图控制器序列。在iOS 7之前,用户通常通过导航栏上的返回按钮或者手势来实现页面间的切换。然而,随着iOS 7的发布...
本篇文章将深入探讨`UINavigationController`的使用方法,特别是与ToolBar的结合。 首先,`UINavigationController`的核心功能是实现页面间的跳转和返回。当用户点击导航栏上的按钮或者执行某些操作时,它可以将新...
在iOS应用开发中,`UINavigationController` 和 `UITabBarController` 是两个非常重要的视图控制器容器,它们用于构建用户界面的导航和切换功能。在这个使用例子中,我们将深入理解这两个类,并通过源码分析和实际...
以下是一个简单的UINavigationController使用示例: ```objc // 创建根视图控制器 UIViewController *rootViewController = [[RootViewController alloc] init]; // 创建NavigationController并设置根视图控制器 ...
在iOS应用开发中,`UINavigationController`是苹果提供的一个核心组件,它负责管理一系列的`UIViewController`对象,形成一个导航栈。这个栈的顶部视图控制器通常显示在屏幕上,而其他视图控制器则被压入栈中等待...
1. **分段控制器(TabBarController)集成**:`UINavigationController`常与`UITabBarController`结合使用,为每个分段提供独立的导航结构。 2. **交互式Pop手势**:默认情况下,`UINavigationController`支持从左侧...
本教程将深入讲解`UINavigationController`的基础使用,特别针对Swift 5.0版本。作为新手自学练习,理解并掌握这部分内容对于构建具有层级结构的iOS应用至关重要。 1. **UINavigationController简介** `...
7. **使用uinavigationcontroller的场景**: - 一般在需要多层级导航结构,如主菜单-子菜单的切换,或是需要回退功能的场景下使用。 8. **与storyboard的配合**: - 在storyboard中,可以通过segue的`Kind`设置为...
每个标签对应一个TabBarItem,点击时会切换到相应的ViewController,通常配合多个UINavigationController使用,提供多页面间的切换。 3. **UIPageViewController**:适用于创建类似翻页效果的界面,例如电子书应用...
在`animateTransition(using:)`方法中,你可以使用`transitionContext`来获取当前的fromViewController和toViewController,并通过修改其frame或者使用Core Animation来实现动画效果。 三、交互式转场 如果想要...