У меня есть 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.
Любые идеи?
Вот и все! Благодаря! – modsoussi