下午又找到了一個新的方法 這個方法不錯 暫時沒有發現異常的地方。
新寫的App中需要使用UINavigationController對各個頁面進行導航,但由於第一級頁面的title較長,在進入第二級頁面後返回按鈕leftButtonItem的title就會變得很長,對NavigationBar空間佔用很大,而且不美觀,於是使用代碼對leftButtonItem的title文本進行修改,無論是設定self.navigationItem.leftBarButtonItem.title = @"返回";還是self.navigationItem.backBarButtonItem.title
= @"返回";都沒有效果,title文本始終不會發生變化。到網上亂搜一通後,得到了以下解決方案,相對來說比較簡單,特記錄如下:
在第一級頁面的viewDidLoad方法中加入以下代碼:
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init]; temporaryBarButtonItem.title = @"返回"; self.navigationItem.backBarButtonItem = temporaryBarButtonItem; [temporaryBarButtonItem release];
也就是用一個新的按鈕在進行導航前將原來的返回按鈕替換掉就可以了。
可以如下設定 但是這樣的缺點是那個按鍵會變成方形 可以添加圖片來進行修改。
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];}
添加圖片的相關代碼如下
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];
原帖地址:http://hi.baidu.com/givingmore/item/134c50e3ef6fcea52e140b71