2015-07-20 3 views
0

У меня есть UIViewController, который представлен двумя способами: либо модально, либо помещен поверх стека контроллера навигации. UIViewController содержит UITableView и UIToolbar. Когда представленный модально, мне нужен способ показать title для ViewController, поэтому я добавил еще UIToolbar, topToolbar. Моя проблема в том, что всякий раз, когда я нажимаю UIViewController, мне больше не нужно topToolbar, так как navigation tabbar уже показывает название. Когда я установил скрытую собственность topToolbar на true, однако мой UITableView не связан со дном navigation tab bar, и между и navigation tabbar есть пробелы, которые выглядят не так хорошо. Я попытался позвонить removeFromSuperview() по телефону topToolbar вместо того, чтобы установить его 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 
    } 
} 

Я должен также упомянуть, что у меня есть ограничение на UITableView, что в основном: расстояние между UItableView.top и Top 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

Смежные вопросы