iOS 上UINavigationController视图压栈形式,可以在当前视图无限制push许多视图,然而一些会觉得自带的push按钮不够美观,而且当上的上一个页面title很长的时候,那个返回按钮就很长,怎样定义一个自己返回按钮呢?向第三幅图片一样。。。

需要push的视图里面定义一个事件
1
2
3
4
5
<code>- (IBAction)pushVC:(id)sender {</code>
<code> </code><code>NavViewController *navVC = (NavViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@</code><code>"NavViewController"</code><code>];</code>
<code> </code><code>navVC.title = NSLocalizedString(@</code><code>"设置"</code><code>, nil);</code>
<code> </code><code>[self.navigationController pushViewController:navVC animated:YES];</code>
<code>}</code>
替换返回按钮,定义自定义按钮
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>- (</code><code>void</code><code>)viewDidLoad</code>
<code>{</code>
<code> </code><code>[super viewDidLoad];</code>
<code> </code>
<code> </code><code>UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];</code>
<code> </code><code>backBtn.frame = CGRectMake(0, 0, 44, 44);</code>
<code> </code><code>[backBtn setImage:[UIImage imageNamed:@</code><code>"back.png"</code><code>] forState:UIControlStateNormal];</code>
<code> </code><code>[backBtn addTarget:self action:@selector(doBack:) forControlEvents:UIControlEventTouchUpInside];</code>
<code> </code><code>UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];</code>
<code> </code><code>self.navigationItem.leftBarButtonItem = backItem;</code>
<code> </code>
<code> </code><code>// Do any additional setup after loading the view.</code>
<code>-(</code><code>void</code><code>)doBack:(id)sender</code>
<code> </code><code>[self.navigationController popViewControllerAnimated:YES];</code>
本文转自新风作浪 51CTO博客,原文链接:http://blog.51cto.com/duxinfeng/1279119,如需转载请自行联系原作者