2016-03-06 48 views
0

我有一個CollectionView運行在我的項目中,而collectionViewController使用自定義的segue連接到另一個tableview,如下所示。導航條沒有顯示在Swift中的TableviewController

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    selectedMenuItem = indexPath.row 

    //Present new view controller 
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil) 

    var destViewController : UINavigationController 


    switch (indexPath.row) { 
    case 0: 
     destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController 
     break 
    default: 
     destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController 
     break 
    } 
    self.presentViewController(destViewController, animated: true, completion: nil) 


} 

上述代碼成功填充我的NewTableview,但tableview完全缺少導航欄。

到目前爲止,我嘗試如下...

  • 我嵌入的新navigationController來的CollectionView結果保持不變。

  • 我嵌入新的navigationController到NewT​​ableView結果保持不變。

  • 我試圖使用自定義導航按鈕操作method.so我放開segue方法,我插入導航欄項目和按鈕到視圖和方法的作品,但它當strangly導航欄按鈕按下它將我帶到我的主集合視圖控制器,這是我what.but我還有一個返回按鈕出現在什麼集合視圖的rowIndex項目名稱上。當我按下它帶我回NewTableView其如循環通過按鈕。

我不知道我缺少什麼(任何委託方法)。而且,我注意到從動畫底部newTableView數據載入中...

我想知道有沒有什麼辦法可以把一個導航程序與後退按鈕的行爲...

在此先感謝.....

回答

1

你必須實例化導航控制器,而不是從你的故事板的實際視圖控制器。因此,而不是實例NewTableView(你想鑲嵌在導航控制器的視圖控制器),您應標識添加到您的UINavigationController,這樣它會被實例化,而不是視圖控制器本身。

想象一下,您可以重新使用不需要導航控制器作爲根的NewTableView控制器,iOS如何意識到這一點?因此,一個標識符添加到您的託管UINavigationController和實例化。導航控制器對rootViewController具有根缺省的依賴關係,因此您只需要顯示UINavigationControllerNewTableView控制器將基於它與導航控制器的依賴關係顯示。

相關問題