`

自定义导航栏上的返回按钮UINavigationController

阅读更多

转自:http://blog.csdn.net/kmyhy/article/details/6869135

 

//.h

 

#import <UIKit/UIKit.h>

@interface MyNavigationController : UINavigationController

@end

 

//.m

 

#import "MyNavigationController.h"

@implementation MyNavigationController


-(void)popself
{
    
    [self popViewControllerAnimated:YES];
    
}

-(UIBarButtonItem*) createBackButton

{ 
    UIImage* image= [UIImage imageNamed:@"navi_back_btn"];
    UIImage* imagef = [UIImage imageNamed:@"navi_back_f_btn"];
    CGRect backframe= CGRectMake(0, 0, image.size.width, image.size.height); 
    UIButton* backButton= [UIButton buttonWithType:UIButtonTypeCustom];
    backButton.frame = backframe;
    [backButton setBackgroundImage:image forState:UIControlStateNormal];
    [backButton setBackgroundImage:imagef forState:UIControlStateHighlighted];
    [backButton setTitle:@"返回" forState:UIControlStateNormal]; 
    [backButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    backButton.titleLabel.font=[UIFont systemFontOfSize:12]; 
    [backButton addTarget:self action:@selector(popself) forControlEvents:UIControlEventTouchUpInside]; 
    //定制自己的风格的  UIBarButtonItem
    UIBarButtonItem* someBarButtonItem= [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
    return someBarButtonItem;
    
//    return [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleBordered target:self action:@selector(popself)];
    
} 

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 

{ 
    
    [super pushViewController:viewController animated:animated]; 
    
    if (viewController.navigationItem.leftBarButtonItem== nil && [self.viewControllers count] > 1) 
    { 
        
        viewController.navigationItem.leftBarButtonItem =[self createBackButton];
        
    } 
    
} 

@end
分享到:
评论

相关推荐

    IOS 自定义导航栏 和表格 学习笔记

    例如,可以自定义导航栏的背景色、标题文字样式、左右按钮等。要实现自定义导航栏,你可以: 1. 使用`appearance`代理方法统一设置所有导航栏的样式。 2. 在每个ViewController中重写`navigationBar:didPopItem:`...

    ios-自定义导航栏.zip

    2. **扩展功能**:通过自定义导航栏,可以添加额外的按钮、滑块、下拉菜单等交互元素,以提供更多操作选项。比如,你可以在右侧添加一个搜索按钮,点击后弹出搜索视图。 3. **动画效果**:为了提升用户体验,可以为...

    iOS自定义导航栏

    标题“iOS自定义导航栏”表明我们将讨论如何在Objective-C(OC)编程环境下,对苹果的UIKit框架中的UINavigationController及与其相关的组件进行扩展和调整。 首先,我们要理解系统默认的导航栏。...

    ios-自定义导航全局返回按钮.zip

    以上就是关于`ios-自定义导航全局返回按钮.zip`这个资源包所涵盖的知识点,主要涉及了自定义导航栏按钮、全局应用、保持系统代理工作以及支持侧滑返回手势等内容。在实际项目中,这样的自定义能够提升用户体验,同时...

    Swift5.2 CustomNavigationController自定义导航栏.zip

    3. **自定义导航栏按钮**:可以创建自定义的`UIButton`,添加图像和标题,然后将其设置为`UIBarButtonItem`,再将其添加到`navigationItem`的`leftBarButtonItem`或`rightBarButtonItem`。 4. **动态调整导航栏**:...

    OC-UINavigation自定义导航栏

    3. **自定义导航栏按钮**:`leftBarButtonItem` 和 `rightBarButtonItem` 是默认的左右按钮,我们可以替换为自定义的 `UIBarButtonItem` 或自定义视图。同时,可以通过 `appearance` API 来全局改变按钮的样式,如...

    自定义导航栏背景颜色

    在本教程中,我们将深入探讨如何自定义导航栏的背景颜色,使应用界面更加个性化和符合品牌形象。 在iOS开发中,我们使用Swift和UIKit框架来实现这个功能。首先,我们需要导入UIKit库: ```swift import UIKit ``` ...

    ios-自定义导航栏标题切换效果.zip

    本项目“ios-自定义导航栏标题切换效果.zip”聚焦于实现导航栏标题在不同页面间的动态切换,旨在帮助开发者们创造出更富有交互性的用户体验。我们将探讨如何自定义导航栏标题的显示效果,以及如何与滚动视图...

    每个视图控制器的自定义导航栏.zip

    在提供的压缩包中,可能包含了一个名为`EachNavigationBar_master.zip`的项目文件,这个文件可能是一个示例项目,演示了如何在每个视图控制器中实现自定义导航栏。通过打开并运行这个项目,你可以直观地看到各种...

    IOS 入门开发之导航栏按钮切换

    五、自定义导航栏按钮 1. 自定义按钮外观:可以创建自定义的UIView或UIButton作为`UIBarButtonItem`的custom view,实现更复杂的交互效果。 2. 动画效果:利用`UIView`的动画API,为按钮切换添加过渡效果,提升用户...

    OC Extension Navi+TarBar(自定义导航栏).zip

    在iOS开发中,自定义导航栏(NaviBar)和标签栏(TarBar)是常见的UI组件,用于提供用户友好的界面和交互。OC Extension Navi+TarBar 是一个专门为Objective-C(OC)开发者设计的工具类,它封装了自定义导航栏和标签...

    swift-系统返回按钮事件拦截Swift版本

    首先,我们需要理解的是,iOS中的导航控制器(UINavigationController)默认提供了左侧的返回按钮,这个按钮的行为通常是返回上一级视图控制器。在Swift中,我们可以通过继承UINavigationController并重写其`...

    mPass iOS 定制导航栏(AUThemeManager).zip

    5. **注意的细节**: 在自定义导航栏时,还需要考虑状态栏的颜色匹配、返回按钮的样式以及在不同iOS版本下的兼容性等问题。例如,你可以使用`barStyle`属性设置导航栏为黑色或白色,通过`tintColor`设置导航栏按钮的...

    iOS 导航栏源代码

    - 可能包含了自定义导航栏背景、标题样式、按钮行为等功能的实现。 - 可能通过扩展`UINavigationBar`类别或者创建子类来实现自定义。 - 代码中可能会用到`appearance` API,用于全局修改导航栏的外观。 5. **...

    自定义导航栏

    自定义导航栏的返回按钮同样可以通过创建自定义UIBarButtonItem来完成。你可以指定图片、标题,甚至自定义视图: ```swift let leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "back"), style: .plain...

    iOS中导航栏的基本使用汇总

    本篇文章将详细介绍如何在iOS中使用导航栏,包括设置导航栏样式以及解决自定义导航栏返回按钮后侧滑不可用的问题。 一、设置导航栏样式 导航栏的样式可以全局或局部进行设置,以适应不同页面的需求。 1. **全局...

    ios 导航栏放置多个按钮及引申的ivar变量的问题

    如果需要添加更多按钮,我们需要自定义导航栏的外观和行为。这通常通过以下几种方式实现: 1. 自定义UIBarButtonItem:创建多个UIBarButtonItem,并设置其title、image或者customView,然后在`- (void)...

    ios-导航栏隐藏和显示.zip

    本示例"ios-导航栏隐藏和显示.zip"聚焦于如何根据用户界面的上下移动来动态地控制导航栏的显示与隐藏,以及如何自定义导航栏上的返回按钮和手势操作。下面我们将详细探讨这些知识点。 1. 导航栏的隐藏与显示: 在...

    自定义导航、标签,多个TabBarController,手势滑动返回

    在iOS应用开发中,自定义导航栏(NavigationBar)和TabBarController的使用是非常常见的需求,而手势滑动返回更是提升用户体验的重要功能。以下是关于这些知识点的详细解析: 首先,我们来看自定义导航栏。系统自带...

Global site tag (gtag.js) - Google Analytics