再次思考UINavgationBar的自定义问题

在ios4时代的时候,我记得是可以重写drawrect的方法来替换背景图片的.

网上一搜还是有多介绍的,比如:http://www.cocoachina.com/bbs/read.php?tid=84025

另外替换返回按钮的方法,通过继承Navcontroller,在push的时候重新设定leftbuttionitem

如:

@implementation CustomNavigationController 

@synthesize isLoading;

//替换返回按钮

- (void)popself {

if (isLoading) {

NSLog(@"still loadingstop pop view");

return;

}

    [self popViewControllerAnimated:YES];

}


- (UIBarButtonItem*)createBackButton {

UIButton *btn_return=[UIButton buttonWithType:UIButtonTypeCustom];

[btn_return addTarget:self action:@selector(popself) forControlEvents:UIControlEventTouchUpInside];

[btn_return setBackgroundImage:[UIImage imageNamed:@"btn_return.png"] forState:UIControlStateNormal];

btn_return.frame=CGRectMake(0, 0, 27, 25);

UIBarButtonItem *bar_itemreturn=[[[UIBarButtonItem alloc] initWithCustomView:btn_return] autorelease];

return bar_itemreturn;

/*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];

    }

}



但是ios5时代这种做法是不行的,不过也有人找到了办法.http://blog.csdn.net/viktyz/article/details/7282925

其实最简单的办法,直接隐藏掉吧.自己在视图重新弄个bar就搞定了.何必那么啰嗦.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值