之前大家是否疑惑為什么設置了類似這樣的代碼
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?initWithTitle:@"返回"?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?style:UIBarButtonItemStylePlain?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?target:self? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?action:nil];? ? ? ? self.navigationItem.backBarButtonItem = backButton; 復制代碼
界面上backButton并沒出現“返回”的字樣
其實是被leftBarButtonItem和rightBarButtonItem的設置方法所迷惑了
lleftBarButtonItem和rightBarButtonItem設置的是本級頁面上的BarButtonItem,而backBarButtonItem設置的是下一級頁面上的BarButtonItem
比如:兩個ViewController,主A和子B,我們想在A上顯示“刷新”的右BarButton,B上的BackButton顯示為“撤退”
就應該在A的viewDidLoad類似方法中寫:
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?initWithTitle:@"刷新"?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?style:UIBarButtonItemStylePlain?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?target:self? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?action:nil];? ? ? ? self.navigationItem.rightBarButtonItem = refreshButton;UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?initWithTitle:@"撤退"?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?style:UIBarButtonItemStylePlain?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?target:self? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?action:nil];? ? ? ? self.navigationItem.backBarButtonItem = cancelButton; 復制代碼
而B不需要做任何處理
然后ApushB就可以了
轉載于:https://www.cnblogs.com/codeApp/archive/2012/11/12/2766145.html
總結
以上是生活随笔為你收集整理的UINavigationViewController的backBarButtonItem设置技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。