2013-10-08 73 views
0

我想刪除UIViewController後臺按鈕的背景。刪除uibarbuttonitem的背景圖像後退按鈕

我該怎麼做?

我嘗試下面的代碼

backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back.png"] landscapeImagePhone:nil style:UIBarButtonSystemItemCancel target:self action:nil]; 
    [backButton setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
self.navigationItem.backBarButtonItem = backButton; 

但它沒有工作!

+0

你試圖修改''UINavigationBar'回button's'回的圖像? –

+0

是的,我正在努力做到這一點! – aakpro

+0

請清除您的問題??請使用Image –

回答

0

此代碼爲我工作

UIImage *backButtonImage = [UIImage imageNamed:@"back.png"]; 
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[backButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside]; 
[backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal]; 
[backButton setFrame:CGRectMake(0, 0, 30, 30)]; 
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
[backBarButton setAction:@selector(backButtonPressed)]; 
self.navigationItem.leftBarButtonItem = backBarButton; 
-(void)backButtonPressed{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
0

UINavigation.backBarButtonItem不用於設置當前視圖控制器的後退按鈕,它用於從當前視圖控制器推送的控制器的後退按鈕

現在說出ViewController1顯示在UINavigationController,您設置了ViewController1backBarButton。後退按鈕不會改變,但隨後您按ViewController2,您會看到ViewController2的後退按鈕是您爲ViewController1設置的按鈕。

若要恢復的ViewController1按鈕,要麼你把它的視圖控制器推ViewController1,或者你的用戶self.navigationItem.leftBarbuttonItem = YourButton,你需要在YourButton

添加事件偵聽器,後者的方式
+0

謝謝,但我應該怎麼做才能返回到第一個viewController? – aakpro

+0

如果您正在設置backBarbuttonItem,則無需執行任何操作。如果您正在設置leftBarButtonItem,則需要在選擇器中設置您分配給UINavigationController.leftBarButtonItem的UIBarButtonItem的目標和選擇器,然後手動調用UINavitaionController popViewController。 – CarmeloS

1

不要試圖修改UINavigationBar的後退按鈕圖像。這是不可能的,因爲這是默認的。

寧可把另一個自定義UIButton作爲UINavigationBar項目,然後您可以根據您的需要進行自定義。

UIButton *btnItem = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)]; 
[btnItem setTitle:@"title" forState:UIControlStateNormal]; 
[btnItem addTarget:self action:@selector(btnItem_click:) forControlEvents:UIControlEventTouchUpInside]; 
self.topItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:btnItem]; 
+0

謝謝,但我需要實現功能! – aakpro