2013-05-06 111 views
0

當我嘗試使用下面的代碼以自定義在UINavigationBar的項目更改UINavigationBar的項目:遍歷導航層次

CGSize size = [UIImage imageNamed:kGlobalNavigationBarButtonBackOrange].size; 
    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)]; 
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackOrange] forState:UIControlStateNormal]; 
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackPressedOrange] forState:UIControlStateHighlighted]; 
    [backButton addTarget:self action:@selector(dismissViewController) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 

    UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Detail"]; 
    [item setLeftBarButtonItem:barButton]; 
    [item setTitleView:self.navigationItem.titleView]; 

    [self.navigationBar pushNavigationItem:item animated:YES]; 
    [self.navigationController pushViewController:vc animated:YES]; 

然而,當我運行此,導航欄不看任何不同。

回答

1

您要做的事應該從您的vc視圖控制器中完成。總而言之,當一個新的視圖控制器被推入堆棧時,系統會詢問它的導航項目,並用於更新導航欄。

在您的視圖控制器的- viewDidLoad中,創建條形按鈕並將其設置爲self. navigationItem. leftBarButtonItem

您不需要創建新的導航項目或將任何導航項目推送到導航欄上。讓視圖控制器框架爲你做這個。