UINavigationController 如何在子视图中设置标题等
Posted
技术标签:
【中文标题】UINavigationController 如何在子视图中设置标题等【英文标题】:UINavigationController how to set title and etc in children views 【发布时间】:2018-08-23 12:43:57 【问题描述】:我的应用结构:
firstView: UIViewController
和 UINavigationController
-- secondView UITabBarController
和几个UIViewControllers
启动应用,firstView:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
let vc = ViewController()
let navContr = UINavigationController(rootViewController: vc)
self.window? = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = navContr
self.window?.makeKeyAndVisible()
return true
在 firtView 我点击按钮打开 secondView:
let vc = MyTabController() // my UITabBarController
self.navigationController?.pushViewController(vc, animated: true)
启动第二个视图:
class MyTabController: UITabBarController
override func viewDidLoad()
super.viewDidLoad()
let gen = MyViewController()
let tabGen = UITabBarItem()
gen.tabBarItem = tabGen
tabGen.image = UIImage(named: "general")
tabGen.title = "Все вопросы"
viewControllers = [gen]
....
在我的secondView
中,我想设置标题,在每个标签中设置UISearchControlleer
。但是如果我写ViewController
navigationItem.title = "myTitle"
没有任何变化。我只看到按钮“返回”。
Here's the screenshot
【问题讨论】:
【参考方案1】:在 viewDidLoad()
方法
self.title = "Your Title"
【讨论】:
@Joe 您需要在第一个 ViewController 中添加它,以便在按下后它会显示在第二个视图控制器的后退按钮上。 不太明白。在 MyTabViewControlers 的 viewControlers 中,我无法访问 navigationController。它的零。如果我在 didLoad() 中添加 "self.title = "Your Title"" 没有任何变化。 @Joe 因此,您需要将每个 TabviewController 与 Storyboard 中的导航控制器嵌入,如果您不需要在表格视图控制器中显示导航栏,则将其隐藏并设置标题。 我不使用情节提要。看来决定了。在 ViewControllers 中添加 tabBarController?.title 您首先需要将您的第一个 Vc 嵌入到 UINavigationController 中,然后您将在第一个视图控制器中拥有 navigationController以上是关于UINavigationController 如何在子视图中设置标题等的主要内容,如果未能解决你的问题,请参考以下文章
如何扩展 UIView 过去包含 UINavigationController
如何从 UINavigationController 隐藏 UINavigationBar?