默認solvings是不恰當的:如何使leftBarButtonItem看起來像backBarButtonItem?
- 改變以前的ViewController標題 - 我需要讓我自己的功能控制按鈕觸碰起來
- 做出leftBarButtonItem和隱藏backBarButtonItem - leftBarButtonItem不看像一個默認的backBarButtonItem。
默認solvings是不恰當的:如何使leftBarButtonItem看起來像backBarButtonItem?
下面是創建一個自定義leftBarButtonItem一個例子:
UIImage *buttonImage = [UIImage imageNamed:@"backbutton.png"];
UIButton *aButton = [UIbutton buttonWithType:UIButtonTypeCustom];
[aButton setImage:buttonImage forState:UIControlStateNormal];
aButton.frame = CGRectMake(0.0,0.0,buttonImage.size.width,buttonImage.size.height);
[aButton addTarget:self action:@selector(aSelector) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:aButton];
self.navigationItem.leftButtonItem = backButton;
希望它可以幫助...
編輯:
嘗試......
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yourimage.jpg"] style:UIBarButtonItemStyleBordered target:self action:@selector(aSelector)];
self.navigationItem.leftBarButtonItem = backButton;
我不記得按鈕是什麼類型的按鈕,嘗試將默認樣式更改爲其他。祝你好運!
只需創建一個自定義barbuttonitem
並使用類似於後退按鈕項的圖片對其進行自定義。 您可以從導航堆棧中的視圖控制器獲取文本。
然後把手水龍頭,以實現所需效果
你可以把這裏更多具體的例子? – Gargo
您可以將您的自定義視圖作爲欄按鈕到您的導航控制器,是這樣的:對於更詳細的解釋
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:yourCustomizedControl];
[yourCustomizedControl release];
self.navigationItem.leftBarButtonItem = customItem;
[customItem release];
檢查this Apple documentation,如果你想。
正如我理解你我需要更改backBarButtonItem標題,然後我需要將其轉換爲UIView並將其分配給一個leftBarButtonItem。但是如何? – Gargo
我會做的是創建一個簡單的UIButton,按照我希望的樣子自定義它,我的意思是給它一個背景圖像,一個標題等等。您可以找到一個類似於backBarButtonItem的圖像並分配這個到您新創建的UIButton。然後爲這個UIButton分配一個目標動作,以便它在你點擊時做你想做的事情。最後,將這個UIButton分配給你的nav的leftBarButton。控制器如上所述。 – aslisabanci
現在我認爲最好刪除leftBarButtonItem並將其函數放入viewWillDisapear – Gargo
這裏是一個黑客添加回狀按鈕:
UINavigationItem* backNavigationItem = [[UINavigationItem alloc] initWithTitle:@"Back"];
[_navigationBar pushNavigationItem:backNavigationItem animated:NO];
[backNavigationItem release];
您可以添加更多的項目(例如如標題,右鍵)這樣說:
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
navigationItem.rightBarButtonItem = // Some UIBarButtonItem
[_navigationBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
它會被應用程序商店接受嗎? – Gargo
我從來沒有因爲這個拒絕 – willy
它看起來像這個解決方案使用「自定義」UINavigationBar('_navigationBar = [[UINavigationBar分配] initWithFrame:...]; [self.view addSubview:_navigationBar]; _navigationBar.items = ...; _navigationBar.delegate = self')而不是'self.navigationController.navigationBar'。你需要適當地實現UINavigatonBarDelegate。 –
謝謝,我會用這個,如果有沒有其他方式。但我希望使它更加靈活(當它僅取決於backBarButtonItem的圖像和樣式而不依賴於圖像資源時) – Gargo
我已編輯答案 – karse23
第二個示例更糟,因爲sdk doesn'允許一次爲該按鈕設置圖像和標題。所以我應該爲所有的標籤製作不同的圖像。你想給我建議嗎? – Gargo