IOS 改變導覽列返回按鈕的標題

來源:互聯網
上載者:User

下午又找到了一個新的方法 這個方法不錯 暫時沒有發現異常的地方。

   新寫的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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.