自定义绘制后退按钮在iPhone上导航栏

自定义绘制后退按钮在iPhone上导航栏

问题描述:

我有一个导航栏一个UIView,我想添加一个按钮,它看起来像一个返回按钮的样式。我没有使用UINavigationController,并想知道如果没有它可以做到这一点?自定义绘制后退按钮在iPhone上导航栏

按钮的样式应该是这样的:alt text

感谢

+2

@casperOne除了在回答近2年后关闭问题之外,为什么要关闭它呢? http://stackoverflow.com/questions/227078中的接受答案建议使用图片,而Mike Weller的答案则更加优雅。更何况,这里的答案将支持更新的设备(例如,当视网膜显示器启动并且它仍然有效时,我没有更改此代码示例,图像会显示低分辨率结束)。 – 2013-02-18 12:10:25

您需要设置UINavigationItem对象的自定义堆栈,并推动他们到UINavigationBar的。这是我知道得到一个真正的后退按钮的唯一途径。我还没有测试此代码,但你应该做这样的事情:

UINavigationItem *previousItem = 
    [[[UINavigationItem alloc] initWithTitle:@"Back title"] autorelease]; 

UINavigationItem *currentItem = 
    [[[UINavigationItem alloc] initWithTitle:@"Main Title"] autorelease]; 

[navigationBar setItems:[NSArray arrayWithObjects:previousItem, currentItem, nil] 
       animated:YES]; 

要处理时,按下按钮,你应该为自己设定为导航栏的委托,实施UINavigationBarDelegate代表。

+0

FYI:设置由navigationController管理的的导航栏的代表提出了一个例外:`***终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,原因:“不能手动设置委托由一个controller.'` – stigi 2013-03-25 11:18:48

+0

管理的UINavigationBar的什么是currentItem? – scientiffic 2014-08-29 02:46:09

您还可以通过以前的视图控制器(而不是当前观看的一个)上修改backBarButtonItem更新此。