0

我在我的應用程序中使用了一個tabbar控制器,並在第一個選項卡下是一個navigationcontroller。iphone:將UIBarButtonItem添加到UIViewController的UINavigationItem.leftBarButtonItem - 弱?

導航控制器堆棧的rootview向用戶顯示一個搜索欄,他可以在其中輸入文本。在完成他的輸入之後,用戶啓動我們網站的一些搜索服務。在執行搜索過程中,我想顯示一些「狀態信息」,因此我在導航控制器的堆棧上推另一個視圖控制器(statusInfoController)。

搜索完成後(最多需要10s),結果表控制器被推送到導航控制器堆棧。

現在我想在uinavigationbar中顯示一些後退按鈕,它將用戶帶回到根視圖控制器。我的確在viewWillAppear - 方法結果表控制器的以下內容:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Zurück21" 
                    style:UIBarButtonItemStyleBordered 
                    target:self 
                    action:@selector(popBackToFirstView)]; 

    self.navigationItem.leftBarButtonItem = backButton; 
    UIBarButtonItem *backButton2 = [[UIBarButtonItem alloc] initWithTitle:@"Zurück22" 
                    style:UIBarButtonItemStylePlain 
                    target:nil 
                    action:nil]; 
    self.navigationItem.backBarButtonItem = backButton2; 
    self.navigationItem.title = [self.lastSearch suchAnfrage]; 

    [backButton release]; 
    backButton = nil; 
    [backButton2 release]; 
    backButton2 = nil; 

和我實現了這個類中的popBackToFirstView - 方法。還有第UIBarButtonItem分配給detailViewbackBarButtonItem屬性(當用戶觸摸resulttableview中的某個條目時,將其推送到navigationController的堆棧)。

我的問題:所有後臺按鈕其中來自self.navigationItem.backBarButtonItem與左側的箭頭,但分配給self.navigationItem.leftBarButtonItem按鈕是一個普通按鈕,沒有箭頭。

如何添加箭頭到「特殊」後退按鈕?我應該使用哪種風格?

或者我應該使用標準的後退按鈕?但是,那麼必須有任何其他方式來「跳過」statusInfoController-View?

回答

0

我認爲後退箭頭功能是讓SDK控制您使用導航欄的一個集成部分。

唯一的解決方案 - 如果你可以這樣調用它 - 將編寫你自己的自定義導航欄類​​,作爲UIViewController的一個子類(使用NIB使它更容易),然後你將擁有所有的靈活性你可以想要。

1

您正在尋找錯誤的解決方案。

真正的問題是您將額外的控制器推到導航堆棧上的方法 - 除非是用戶想要導航到的東西,否則不應該將任何東西推入堆棧。重做您的代碼,以便在與搜索欄相同的視圖控制器中顯示狀態顯示和搜索結果。仔細看看iTunes Store等內置應用程序如何搜索並嘗試複製其行爲。

+0

是的,謝謝你指點我在這個方向..這個解決方案似乎對我很好..很多清潔劑; =) – dac 2011-05-24 19:44:03

+0

這是一個壞主意,按照你的建議..現在我掛在身邊,嘗試使新的UIView從原來的UINavigationController動畫的動畫中推入右邊 - 我應該只使用視圖控制器來獲取狀態信息,會不會這麼糟糕?現在我遇到了帶有kCATransitionPush的CATransition有一些不好的「FADE」 - 效果。這看起來很醜陋......並且都是因爲它不符合使用額外的uiviewcontroller進行狀態消息傳遞。 – dac 2011-05-24 22:44:46

相關問題