zoukankan      html  css  js  c++  java
  • iOS 隐藏系统的导航,使用自定义的导航

    #import <UIKit/UIKit.h>
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    
    @end
    #import "AppDelegate.h"
    #import "RootViewController.h"
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        
        UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:[[RootViewController alloc] init]];
        //隐藏系统导航栏
        navigation.navigationBarHidden = YES;
        self.window.rootViewController = navigation;
        
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    
    @end
    #import <UIKit/UIKit.h>
    
    @interface RootViewController : UIViewController
    
    @end
    #import "RootViewController.h"
    #import "LFNavigationView.h"
    #import "ViewController.h"
    @interface RootViewController ()<LFNavigationViewDelegate,UITableViewDataSource,UITableViewDelegate>
    {
        UITableView *_tableView;
    }
    @property(nonatomic, strong) LFNavigationView *navigationView;
    
    @end
    
    @implementation RootViewController
    
    - (void)loadView{
        [super loadView];
        _tableView = [[UITableView alloc] initWithFrame:/*[[UIScreen mainScreen] bounds]*/CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 64) style:UITableViewStylePlain];
        _tableView.dataSource = self;
        _tableView.delegate = self;
        [self.view addSubview:_tableView];
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        if([UIDevice currentDevice].systemVersion.floatValue >= 7) {
            self.edgesForExtendedLayout = UIRectEdgeNone;
            self.extendedLayoutIncludesOpaqueBars = NO;
            self.modalPresentationCapturesStatusBarAppearance = NO;
        }
        [self setNavMethod];
    }
    
    - (void)setNavMethod{
        _navigationView = [[LFNavigationView alloc] initWithTitle:@"测试" WithLeftImage:nil WithLeftImageHighlighted:nil WithRightImage:nil WithRightImageHighlighted:nil WithViewControl:self];
        [self.view addSubview:_navigationView];
    }
    
    #pragma mark -- UITableViewDelegate --
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
        return 1;
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return 20;
    }
    
    - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        static NSString *identifier = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        if (!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }
        cell.textLabel.text = [NSString stringWithFormat:@"test row:%lu",indexPath.row];
        return cell;
    }
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        ViewController *viewController = [[ViewController alloc] init];
        [self.navigationController pushViewController:viewController animated:YES];
        
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    #import <UIKit/UIKit.h>
    
    @protocol  LFNavigationViewDelegate <NSObject>
    
    @optional
    - (void)leftButtonAction:(UIButton *)button;//左边按钮点击
    - (void)rightButtonAction;//右边按钮点击
    
    @end
    
    @interface LFNavigationView : UIView
    
    @property(nonatomic, weak) UIButton *leftBtn;
    @property(nonatomic, weak) UIButton *rigthBtn;
    @property(nonatomic, strong) UIImageView *rigthImg;
    @property(nonatomic, strong) UILabel *rigthLabel;
    @property(nonatomic, strong) UILabel *titleLabel;
    
    - (id)initWithTitle:(NSString*)title WithLeftImage:(NSString*)leftImage WithLeftImageHighlighted:(NSString*)leftImageHighlighted WithRightImage:(NSString*)rightImage WithRightImageHighlighted:(NSString*)rigthImagehighlighted WithViewControl:(id<LFNavigationViewDelegate>) delegate;
    
    @end
    #import "LFNavigationView.h"
    
    @implementation LFNavigationView
    
    - (instancetype)initWithFrame:(CGRect)frame{
        self = [super initWithFrame:frame];
        if (self) {
            
        }
        return self;
    }
    
    - (id)initWithTitle:(NSString*)title WithLeftImage:(NSString*)leftImage WithLeftImageHighlighted:(NSString*)leftImageHighlighted WithRightImage:(NSString*)rightImage WithRightImageHighlighted:(NSString*)rigthImagehighlighted WithViewControl:(id<LFNavigationViewDelegate>) delegate{
        float Y = 0;
        if ([UIDevice currentDevice].systemVersion.floatValue >= 7) {
            Y = 20;
        }
        self = [super initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44+Y)];
        if (self) {
            UIView *bgView = [[UIView alloc] initWithFrame:self.frame];
            bgView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"顶栏背景"]];
            [self addSubview:bgView];
            
            if (title) {
                //标题
                _titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(([UIScreen mainScreen].bounds.size.width - 255)/2, Y, 255, 42)];
                _titleLabel.textAlignment = NSTextAlignmentCenter;
                _titleLabel.backgroundColor = [UIColor clearColor];
                _titleLabel.text = title;
                _titleLabel.textColor = [UIColor whiteColor];
                _titleLabel.font = [UIFont systemFontOfSize:20];
                [self addSubview:_titleLabel];
            }
            
            if (leftImage) {
                UIImageView *leftImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",leftImage]] highlightedImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",leftImageHighlighted]]];
                leftImg.frame  =CGRectMake(15, 32, 9, 16);
                [self addSubview:leftImg];
                UIImageView *leftTapView = [[UIImageView alloc] initWithFrame:CGRectMake(5, 6+Y, 50, 30)];
                leftTapView.userInteractionEnabled = YES;
                leftTapView.backgroundColor = [UIColor clearColor];
                [self addSubview:leftTapView];
                UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:delegate action:@selector(leftButtonAction:)];
                tapGesture.numberOfTouchesRequired = 1;
                tapGesture.numberOfTapsRequired = 1;
                [leftTapView addGestureRecognizer:tapGesture];
            }
        }
        
        if (rightImage) {
            _rigthImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",rightImage]] highlightedImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",rigthImagehighlighted]]];
            _rigthImg.frame = CGRectMake([UIScreen mainScreen].bounds.size.width-30, 35, 16, 16);
            [self addSubview:_rigthImg];
            
            _rigthLabel = [[UILabel alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 45, 35, 30, 16)];
            _rigthLabel.textColor = [UIColor whiteColor];
            _rigthLabel.font = [UIFont systemFontOfSize:15];
            [self addSubview:_rigthLabel];
            
            UIImageView *rightTapView = [[UIImageView alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 55, 6+Y, 50, 30)];
            rightTapView.userInteractionEnabled = YES;
            rightTapView.backgroundColor = [UIColor clearColor];
            [self addSubview:rightTapView];
            UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:delegate action:@selector(rightButtonAction)];
            tapGesture.numberOfTouchesRequired = 1;
            tapGesture.numberOfTapsRequired = 1;
            [rightTapView addGestureRecognizer:tapGesture];
        }
        
        return self;
    }
    
    @end
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    
    @end
    #import "ViewController.h"
    #import "LFNavigationView.h"
    @interface ViewController ()<LFNavigationViewDelegate>
    
    @property(nonatomic, strong) LFNavigationView *navigationView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor greenColor];
        [self setNavMethod];
    }
    
    - (void)setNavMethod{
        _navigationView = [[LFNavigationView alloc] initWithTitle:@"控制器" WithLeftImage:@"返回按钮" WithLeftImageHighlighted:@"返回按钮_down" WithRightImage:@"加号图标" WithRightImageHighlighted:@"加号图标_down" WithViewControl:self];
        [self.view addSubview:_navigationView];
    }
    
    #pragma mark -- LFNavigationViewDelegate -- 
    - (void)leftButtonAction:(UIButton *)button{
        NSLog(@"%@",button);
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
    
    -(void)rightButtonAction{
        NSLog(@"should do somthing");
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    
    @end
  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/lantu1989/p/5210141.html
Copyright © 2011-2022 走看看