IOS 改變導(dǎo)航欄返回按鈕的標(biāo)題實(shí)例詳解
前言:
下午又找到了一個(gè)新的方法 這個(gè)方法不錯(cuò) 暫時(shí)沒有發(fā)現(xiàn)異常的地方。
新寫的App中需要使用UINavigationController對(duì)各個(gè)頁面進(jìn)行導(dǎo)航,但由于第一級(jí)頁面的title較長,在進(jìn)入第二級(jí)頁面后返回按鈕leftButtonItem的title就會(huì)變得很長,對(duì)NavigationBar空間占用很大,而且不美觀,于是使用代碼對(duì)leftButtonItem的title文本進(jìn)行修改,無論是設(shè)置self.navigationItem.leftBarButtonItem.title = @"返回";還是self.navigationItem.backBarButtonItem.title = @"返回";都沒有效果,title文本始終不會(huì)發(fā)生變化。到網(wǎng)上亂搜一通后,得到了以下解決方法,相對(duì)來說比較簡(jiǎn)單,特記錄如下:
在第一級(jí)頁面的viewDidLoad方法中加入以下代碼:
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init]; temporaryBarButtonItem.title = @"返回"; self.navigationItem.backBarButtonItem = temporaryBarButtonItem; [temporaryBarButtonItem release];
也就是用一個(gè)新的按鈕在進(jìn)行導(dǎo)航前將原來的返回按鈕替換掉就可以了。
可以如下設(shè)置 但是這樣的缺點(diǎn)是那個(gè)按鍵會(huì)變成方形 可以添加圖片來進(jìn)行修改。
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backToPrevious)]; self.navigationItem.leftBarButtonItem = backButton; [backButton release]; - (void)backToPrevious { [self.navigationController popViewControllerAnimated:YES]; }
添加圖片的相關(guān)代碼如下
UIButton *leftButton = [[UIButtonalloc] initWithFrame:CGRectMake(0, 0, 60, 40)]; [leftButton setTitle:@"返回"forState:UIControlStateNormal]; [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateNormal]; [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateHighlighted]; [leftButton addTarget:selfaction:@selector(leftAction:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftItem = [[UIBarButtonItemalloc] initWithCustomView:leftButton]; [leftButton release]; self.navigationItem.leftBarButtonItem = leftItem; [leftItem release];
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選