Для этого вопроса я показываю урезанную версию моей иерархии представлений. В моем приложении содержится UITabBarController
. Контроллер верхнего уровня каждой вкладки является контроллером навигации, и в нем есть контроллеры представлений, встроенные в каждый из них.Tabbar не будет скрываться при вводе в ViewController внутри UITabBarController
Давайте возьмем первую вкладку.
UITabBarController -> UINavigationController -> UITableViewController -> UIViewController
Допустим экземпляр UITableViewController
является своего рода списком и UIViewController
является детализированный вид. Когда пользователь нажимает на элемент из списка, он переходит к подробному представлению. И когда это произойдет, я установил : true
так, чтобы таблет внизу скрывался, когда пользователь находится в подробном представлении.
Мое приложение получает толчок уведомления. При нажатии на них он должен открываться непосредственно в подробном представлении. Я могу заставить его перемещаться туда. Но проблема в том, что панель внизу внизу все еще видна!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
window = UIWindow(frame: UIScreen.main.bounds)
let tabBarController = storyboard.instantiateViewController(withIdentifier: "TabBarController") as! TabBarController
if openingFromPush {
let firstNavigationController = storyboard.instantiateViewController(withIdentifier: "FirstNavigationController") as! UINavigationController
let tableViewController = storyboard.instantiateViewController(withIdentifier: "TableViewController") as! TableViewController
let viewController = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
viewController.hidesBottomBarWhenPushed = true
firstNavigationController.viewControllers = [tableViewController, viewController]
tabBarController.viewControllers?[0] = firstNavigationController
// tabBarController.tabBar.isHidden = true
window?.rootViewController = tabBarController
} else {
window?.rootViewController = tabBarController
}
window?.makeKeyAndVisible()
return true
}
я установил тот же hidesBottomBarWhenPushed
свойство true
в когда я создаю экземпляр контроллер представления, но это, кажется, не имеют никакого эффекта. Я даже попытался спрятать табуляцию, подобную этому, tabBarController.tabBar.isHidden = true
, но это ничего не значит.
Не могу понять, как это решить. Любая помощь будет оценена по достоинству.
Я приложил образец проекта Xcode here, а если это поможет.
Спасибо! Это сработало. – Isuru
Как следует из названия, контроллер просмотра должен быть * нажат * внутри навигационного контроллера –