2013-07-12 80 views
0

我正在開發一個iOS應用程序,它使用包含選項卡的左側滑出抽屜,每個選項卡代表應用程序的主視圖之一。目前,當用戶選擇一個選項卡時,應用程序通過導航堆棧搜索相關視圖控制器的實例,並且如果它找到一個彈出回該控制器,否則它創建一個新實例並將其推入堆棧。帶有標籤導航的Cocoa-Touch後退按鈕

我還想添加一個後退按鈕,允許用戶返回到前一個視圖,但是由於許多導航選項會將用戶彈出到先前的視圖控制器,導致他們要離開的控制器被釋放沒有明顯的方法讓後退按鈕再次返回到該控制器。

是否有任何方法來構造此應用程序,以便可以添加後退按鈕,同時仍允許用戶在給定時間使用選項卡導航到任何視圖?

導航代碼的示例如下(調用當用戶單擊其中一個標籤):

if(![self.navigation.topViewController isKindOfClass:[GraphViewController class]]) { //Are we already in this view? 
    BOOL foundController = NO; 
    for(id controller in self.navigation.viewControllers) { //Is there a controller of this type already in the stack? 
     if([controller isKindOfClass:[GraphViewController class]]) { 
      [self.navigation popToViewController:controller animated:YES]; 
      foundController = YES; 
      break; 
     } 
    } 
    if(!foundController) { 
     GraphViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"graphViewController"]; 
     controller.connection = _connection; 
     controller.data = _dataCache; 
     [self.navigation pushViewController:controller animated:YES]; 
    } 
} 

回答

0

我相信你想要的是在滑出菜單的每個項目導航控制器。這樣,當用戶從側面菜單中選擇視圖時,他們可以瀏覽與該部分相關的視圖。這將允許用戶從側面菜單中選擇一個項目後從視圖中返回。

+0

問題是,每個側面菜單項鍊接到應用程序中的單個特定視圖,並且有方法從視圖中的一個視圖獲取到其他視圖。 I.E.選項卡1鏈接到A,選項卡2鏈接到B,鏈接到B,以及鏈接到C的A和B.每個選項卡都不對應於獨立部分。 –

+0

有趣的是,那麼這不會工作。希望別人能加入進來。 – mikemike396