2011-11-18 79 views
0

好吧,我無法找到UIViewController調用的方法,呈現一個新的視圖。iphone工具欄顯示視圖

我有一個基於UINavigationController的應用程序。一旦我來到一個視圖顯示對象的細節,我有一個工具欄在底部,所以我可以給用戶一些選擇。 當他按barButtomItem,我想顯示一個新的視圖,但不改變導航欄,所以如果我按回按鈕,他從詳細視圖而不是從新的選項。

我知道方法pushViewController,但不工作,因爲我想要的。

thx提前!

編輯:如果我打電話 [[self navigationController] pushViewController:loteCompraViewController animated:YES]; 我得到一個新的視圖,與新的控制器有關,但它也改變了導航欄,這對我不利。

+0

你是什麼意思「pushViewController不起作用」?它有什麼作用?你期望它做什麼? – occulus

+0

如果我打電話[[self navigationController] pushViewController:loteCompraViewController animated:YES];它顯示了一個新的視圖,但它也改變了navigationBar和多數民衆贊成是我不想要的。 –

回答

0

給你的視圖控制器的「視圖顯示對象的細節」兩種方法:isShowingOverlayViewdismissOverlayView。在isShowingOverlayView中,如果您顯示「新視圖」,則返回YES,因爲「他按barButtomItem」。在dismissOverlayView中,隱藏「新視圖」。

然後製作你自己的UINavigationController的子類。在你的子類,覆蓋popViewControllerAnimated:使用你的對象的詳細視圖控制器的那些方法,像這樣:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
{ 
    if ([self.topViewController respondsToSelector:@selector(isShowingOverlayView)] 
     && [(id)self.topViewController isShowingOverlayView]) 
    { 
     [(id)self.topViewController dismissOverlayView]; 
     return nil; 
    } else { 
     return [super popViewControllerAnimated:YES]; 
    } 
} 

使用此子類,而不是標準的UINavigationController。