2015-07-20 84 views
0

我有一個UIViewController以兩種方式呈現,無論是模式或推在導航控制器堆棧的頂部。 UIViewController包含UITableViewUIToolbar。當以模態形式呈現時,我需要一種顯示titleViewController的方式,所以我在另一個UIToolbar,topToolbar中加入。我的問題是,無論何時我按UIViewController,我不再需要topToolbar,因爲navigation tabbar已經顯示標題。然而,當我將topToolbar的隱藏屬性設置爲true時,我的UITableView未綁定到navigation tab bar的底部,並且UITableViewnavigation tabbar之間有空格,但看起來不太好。我試圖撥打topToolbar撥打removeFromSuperview(),而不是將其hidden屬性設置爲true,但這並沒有解決,topToolbar出現在navigation bar下,現在我有兩個titles而不是一個。任何想法如何做到這一點?我無法添加圖片,但這裏是我的基礎上無論是模態提出或推動在導航堆棧的頂部操縱UIViewController外觀代碼:有條件的顯示uitoolbar

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    if itemBought != nil { 
     cart.items.append(itemBought!) 
    } 

    totalView.layer.borderColor = UIColor.grayColor().CGColor 
    totalView.layer.borderWidth = 0.5 

    totalLabel.text = "$" + String(format: "%.2f", cart.getTotal()) 

    if let navBar = self.navigationController?.navigationBar { 
     //hide toolbar and tabbar 
     topToolbar.removeFromSuperview() 
     self.tabBarController?.tabBar.hidden = true 

     //hide shop button 
     var bottomItems: [UIBarButtonItem] = bottomToolbar.items as! [UIBarButtonItem] 
     if let index = find(bottomItems, shopToolbarButton) { 
      bottomItems.removeAtIndex(index) 
     } 
     bottomToolbar.items = bottomItems 
    } 
} 

我還要提到的是,我有一個約束這基本上是UITableViewUItableView.topTop Layout Guide.Bottom之間的距離是<=topToolbar的高度,這是44

任何想法?

回答

1

當您以模態方式呈現視圖控制器時,爲何不將其放入UINavigation控制器中?

let navigationController = UINavigationController(rootViewController: myViewControllerInstance) 

self.navigationController?.presentViewController(navigationController, animated: true, completion: {() -> Void in 
     //do something here when animation is complete if you want 
    }) 
+0

就是這樣!謝謝! – modsoussi