`
_wyh
  • 浏览: 61056 次
社区版块
存档分类
最新评论

UINavigationController使用

    博客分类:
  • ios
阅读更多

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详解与使用(二)页面切换和segmentedController

    本篇将深入讲解`UINavigationController`的页面切换机制以及如何结合`UISegmentedControl`进行有效使用。我们将通过实例分析和代码展示来探讨这些知识点。 首先,`UINavigationController`的核心功能是通过其`...

    UINavigationController使用详解

    在iOS开发中,`UINavigationController` 是一个至关重要的组件,它负责管理一系列的`UIViewController`实例,并通过一个导航栏提供用户界面导航。`UINavigationController` 的主要作用是展示一个堆栈式的视图控制器...

    UITabBarController和UINavigationController的整合使用

    UITabBarController和UINavigationController的整合使用DEMO,详情见:http://blog.csdn.net/hwe_xc/article/details/50588500

    iOS 使用UINavigationController进行页面间跳转

    下面将详细讲解`UINavigationController`的使用以及如何进行页面间跳转。 首先,理解`UINavigationController`的基本概念。它是一个容器视图控制器,可以包含一个或多个子视图控制器。默认情况下,`...

    UITabBarController和UINavigationController混用

    在这个名为 "TabBarAndNavigation" 的示例项目中,开发者可能已经创建了一个实际运行的 Demo,展示了如何在 `UITabBarController` 和 `UINavigationController` 结合使用的场景下,根据需求动态隐藏和显示 `tabBar`...

    UINavigationController+UITabBarController框架

    我们写iOS项目的时候,基本都是一个UINavigationController套一个UITabBarController的形式,就是上面一个导航栏,下面几个按钮的工具条的形式。我写了几个应用,发现如果每次都重新写的话完全就是浪费精力和时间,...

    UINavigationController demo

    在这个"UINavigationController demo"中,我们将探讨如何简单地使用`UINavigationController`以及如何在其上添加自定义导航按钮,包括图片按钮和switch按钮。 首先,要创建一个`UINavigationController`实例,通常...

    UINavigationController返回按钮的事件

    上传的demo关于UINavigationController中back按钮的重写方法, UINavigationController的back按妞本身是没有监听方法的,但是我们通过添加类目可以使back按钮具有监听的作用.让我们能在UINavigationController触发返回...

    UINavigationController Demo代码

    本示例代码“UINavigationController Demo”将深入讲解如何在iOS应用中有效地使用`UINavigationController`,以及它与导航栏(`UINavigationBar`)的交互。 首先,`UINavigationController`是`UIViewController`的...

    页面跳转 UITabBarController+UINavigationController+UIViewController

    当`UITabBarController`与`UINavigationController`结合使用时,常常会在每个`TabBarItem`下嵌套一个`UINavigationController`,这样每个标签页都可以拥有自己的导航结构。例如,你可以在每个`TabBarItem`下面设置一...

    IOS7 UINavigationController滑动Demo

    在iOS开发中,UINavigationController是苹果提供的一种容器类视图控制器,它负责管理一个堆栈式的视图控制器序列。在iOS 7之前,用户通常通过导航栏上的返回按钮或者手势来实现页面间的切换。然而,随着iOS 7的发布...

    UINavigationController详解与使用(三)ToolBar

    本篇文章将深入探讨`UINavigationController`的使用方法,特别是与ToolBar的结合。 首先,`UINavigationController`的核心功能是实现页面间的跳转和返回。当用户点击导航栏上的按钮或者执行某些操作时,它可以将新...

    UINavigationController与UITabBarController的使用例子

    在iOS应用开发中,`UINavigationController` 和 `UITabBarController` 是两个非常重要的视图控制器容器,它们用于构建用户界面的导航和切换功能。在这个使用例子中,我们将深入理解这两个类,并通过源码分析和实际...

    iOS中的应用启动原理以及嵌套模型开发示例详解

    以下是一个简单的UINavigationController使用示例: ```objc // 创建根视图控制器 UIViewController *rootViewController = [[RootViewController alloc] init]; // 创建NavigationController并设置根视图控制器 ...

    UINavigationController 显示隐藏

    在iOS应用开发中,`UINavigationController`是苹果提供的一个核心组件,它负责管理一系列的`UIViewController`对象,形成一个导航栈。这个栈的顶部视图控制器通常显示在屏幕上,而其他视图控制器则被压入栈中等待...

    UINavigationController

    1. **分段控制器(TabBarController)集成**:`UINavigationController`常与`UITabBarController`结合使用,为每个分段提供独立的导航结构。 2. **交互式Pop手势**:默认情况下,`UINavigationController`支持从左侧...

    swift5.0 UINavigationController基础使用

    本教程将深入讲解`UINavigationController`的基础使用,特别针对Swift 5.0版本。作为新手自学练习,理解并掌握这部分内容对于构建具有层级结构的iOS应用至关重要。 1. **UINavigationController简介** `...

    uinavigationcontroller用法.rar

    7. **使用uinavigationcontroller的场景**: - 一般在需要多层级导航结构,如主菜单-子菜单的切换,或是需要回退功能的场景下使用。 8. **与storyboard的配合**: - 在storyboard中,可以通过segue的`Kind`设置为...

    ios应用源码之多种view视图切换效果 2018127

    每个标签对应一个TabBarItem,点击时会切换到相应的ViewController,通常配合多个UINavigationController使用,提供多页面间的切换。 3. **UIPageViewController**:适用于创建类似翻页效果的界面,例如电子书应用...

    UINavigationController自定义

    在`animateTransition(using:)`方法中,你可以使用`transitionContext`来获取当前的fromViewController和toViewController,并通过修改其frame或者使用Core Animation来实现动画效果。 三、交互式转场 如果想要...

Global site tag (gtag.js) - Google Analytics