`

UINavigationController详解与使用(二)页面切换和segmentedController

    博客分类:
  • ios
ios 
阅读更多
UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换。


运行效果图:
[img]

[/img]

[img]

[/img]

1、RootView 跳到SecondView

首先我们需要新一个View。新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView

2、为Button 添加点击事件,实现跳转
在RootViewController.xib中和RootViewController.h文件建立连接
在RootViewController.m中实现代码,alloc一个SecondViewController,用pushViewController到navigationController中去,并为

SecondViewController这是title为    secondView.title =@"Second View"; 默认情况下,titie为下个页面返回按钮的名字。
- (IBAction)gotoSecondView:(id)sender {
    SecondViewController *secondView = [[SecondViewController alloc] init];
    [self.navigationController pushViewController:secondView animated:YES];
    secondView.title = @"Second View";
}


3.1、添加segmentedController
     在RootViewController.m的viewDidLoad添加如下代码:
 NSArray *array = [NSArray arrayWithObjects:@"鸡翅",@"排骨", nil];
    UISegmentedControl *segmentedController = [[UISegmentedControl alloc] initWithItems:array];
    segmentedController.segmentedControlStyle = UISegmentedControlSegmentCenter;

    [segmentedController addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    self.navigationItem.titleView = segmentedController;


3.2[segmentedController addTarget:selfaction:的实现
-(void)segmentAction:(id)sender
{
    switch ([sender selectedSegmentIndex]) {
        case 0:
        {
            UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你点击了鸡翅" delegate:self  cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alter show];

        }
        break;
    case 1:
        {
            UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你点击了排骨" delegate:self  cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alter show];
        }
        break;
        
        default:
            break;
    }
}


4、自定义backBarButtonItem

左上角的返回上级View的barButtonitem的名字是上级目录的Title,如果title或者适合做button的名字,怎么办呢?我们可以自己定义
代码如下:
 UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"根视图" style:UIBarButtonItemStyleDone target:nil action:nil];
    self.navigationItem.backBarBu

我是新手,主意添加位置:RootViewControll.m中
  
- (void)viewDidLoad
{
    [super viewDidLoad];
    //add leftButton 添加左按钮
    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(selectLeftAction:)];
    self.navigationItem.leftBarButtonItem = leftButton;
    
    // add rightButton 添加右按钮
    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  target:self action:@selector(selectRightAction:)];
    self.navigationItem.rightBarButtonItem = rightButton;
    
    
    // add backButton 添加返回按钮
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithTitle:@"Root View" style:UIBarButtonItemStyleDone target:self action:nil];
    self.navigationItem.backBarButtonItem = backButton;
    
    //add SegmentedControl on Navigation  添加分段
    NSArray *array = [[NSArray alloc] initWithObjects:@"one",@"two" ,@"three",nil];
    UISegmentedControl *segmentdeController = [[UISegmentedControl alloc] initWithItems:array];
    segmentdeController.segmentedControlStyle = UISegmentedControlSegmentCenter;
    [segmentdeController addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    self.navigationItem.titleView = segmentdeController;
    
    
    
    
}


5、自定义title
UINavigationController的title可以用别view替代,比如用UIButton UILable等,下面我用UIButton.
在SecondViewController.m中添加下面如下:
- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
    [button setTitle: @"自定义title" forState: UIControlStateNormal];
    [button sizeToFit];
    self.navigationItem.titleView = button;}
  • 大小: 11.7 KB
  • 大小: 10.8 KB
分享到:
评论

相关推荐

    UINavigationController详解与使用(三)ToolBar

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

    UITabBarController和UINavigationController的整合使用

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

    iOS 使用UINavigationController进行页面间跳转

    总之,`UINavigationController`是iOS开发中的关键组件,它有效地管理和控制了多个`UIViewController`之间的切换,提升了用户体验。正确理解和使用`UINavigationController`,将有助于构建高效、流畅的iOS应用。

    UITabBarController和UINavigationController混用

    `UITabBarController` 通常用于实现底部标签栏切换不同功能模块,而 `UINavigationController` 则是管理一系列通过堆栈方式呈现的视图控制器,实现页面间的上下导航。当这两种控制器混用时,可以构建更复杂的用户...

    UINavigationController使用详解

    `UINavigationController` 的主要作用是展示一个堆栈式的视图控制器序列,允许用户通过点击导航栏上的按钮进行前进和后退操作。 1. `navigationItem` 每个被添加到`UINavigationController`中的`UIViewController`...

    页面跳转 UITabBarController+UINavigationController+UIViewController

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

    UINavigationController与UITabBarController的使用例子

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

    iOS 页面切换效果

    在iOS应用开发中,页面切换效果是提升用户体验的重要一环,它可以给用户带来更直观、更生动的操作感受。...在实际项目中,可以结合"StudyiOS"中的示例代码进行学习和实践,不断优化和完善页面切换的动画效果。

    UINavigationController 显示隐藏

    `UINavigationController`提供了在这些视图控制器之间进行导航的功能,比如通过手势或按钮来实现页面的“前进”和“后退”。 在标题"UINavigationController 显示隐藏"中,我们可以理解为讨论的是如何控制`...

    页面切换教程 使用了ARC技术

    5. **MySwitchViewTest项目**:这个项目名可能代表一个用于测试页面切换和ARC实现的工程。可能包含一个或多个UIViewController子类,以及相应的视图和逻辑代码。分析项目中的代码可以帮助深入理解页面切换的具体实现...

    UINavigationController Demo代码

    通过这个Demo,开发者可以学习到如何在实际项目中构建具有导航功能的应用,同时掌握`UINavigationController`与`UINavigationBar`的配合使用,以及如何优雅地处理页面间的导航。在深入研究这个Demo时,建议同时查阅...

    mobile 页面切换

    在移动开发中,通常会使用页面管理器(如Android的FragmentManager或iOS的UINavigationController)来处理页面的添加、删除和切换。这些管理器可以帮助我们维护页面堆栈,确保页面的正确展示和销毁。 四、页面切换...

    IOS7 UINavigationController滑动Demo

    在iOS 7之前,用户通常通过导航栏上的返回按钮或者手势来实现页面间的切换。然而,随着iOS 7的发布,苹果引入了全新的交互设计,使得用户可以通过在屏幕边缘滑动来实现页面的返回,这一特性大大增强了用户体验。"IOS...

    UINavigationController

    二、`UINavigationController`的使用 1. **初始化**:可以通过`initWithRootViewController:`方法创建一个带有根视图控制器的导航控制器。 2. **添加控制器**:使用`pushViewController:animated:`方法将新的控制器...

    仿新浪微博抽屉页面切换

    3. **视图控制器的管理**:为了正确管理和展示这两个视图控制器,可以使用`UINavigationController`作为容器,或者自定义一个继承自`UIViewController`的容器视图控制器。你需要在容器视图控制器中添加两个子视图...

    UINavigationController demo

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

    UINavigationController自定义

    `UINavigationController`的默认行为包括平滑的滑动动画,它在切换页面时会从右侧滑入新的视图控制器。然而,开发者有时需要根据应用的需求来定制这些过渡动画,以实现更具特色的用户体验。自定义`...

    iOS 自定义UINavigationController和UITabBarController

    在iOS应用开发中,`UINavigationController`和`UITabBarController`是两个核心的控制器,用于构建常见的用户界面结构。它们分别是导航栈和标签页切换器,但有时开发者可能需要根据应用的需求进行定制,以实现独特的...

    UINavigationController+UITabBarController框架

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

Global site tag (gtag.js) - Google Analytics